我們正在嘗試兩種發佈到相同動作的表單。 我們試圖從第一個表單中檢索輸入字段txt1的值,並將其傳遞給控制器列表將此值發送到第二個表單的for循環中用於動態創建表單的位置。 但是正在顯示這個錯誤: 「未定義變量:計數器[APP \視圖\列出\ add.ctp,線107] CakePHP的:快速發展PHP框架 CakePHP的2.6.1」 我附上用於控制器的代碼並查看變量未被傳遞到cakephp中查看
查看:
<script>
$(document).ready(function() {
$('#txtt1').on('change',function(){
var paper=$(this).val();
//alert('hello');
if(paper<=0)
alert('No of members should be greater than zero');
if(paper!='')
//$('#apap').hide();
});
});
</script>
<h2>Member Details</h2>
<div id="post1">
</div>
<?php
echo $this->form->create('List',array('action'=>'add'));
echo $this->form->input('txt1',array('id'=>'txtt1'));
//echo $this->form->input('txt2',array('id'=>'txt2'));
echo $this->Js->submit('Enter No. of Panel Members: ',array('update'=>'#success','id'=>'apap','class'=>'butstyle'));
?>
</div>
<div id='success'>
<?php
$options =array('Mr.'=>'Mr.','Mrs.'=>'Mrs.','Ms.'=>'Ms.','Dr.'=>'Dr.','Prof'=>'Prof','Arch'=>'Arch');
echo $this->Html->script('jquery.min');
for($i=1;$i<=$counter;$i++)
{
echo $this->form->create('List',array('action'=>'add','type'=>'file','id'=>'frm'));?>
<?php
echo $this->form->input('salutation',array('type'=>'select','options'=>$options,'empty'=>'--Select--'));?>
<?php
echo $this->form->input('name');?>
<?php
echo $this->form->input('designation',array('type'=>'select','options'=>array($designation,'Others'=>'Others'),'empty'=>'--Select--'));?>
<div id="y" style="display: none">
Designation:
<input type="text" id="txtx" name="data[List][desig_txt]"/>
</div>
<?php
echo $this->form->input('specialization',array('type'=>'select','options'=>array($specialization,'Others'=>'Others'),'empty'=>'--Select--'));?>
<div id="x" style="display: none">
Specialization:
<input type="text" id="txty" name="data[List][spec_txt]" />
</div>
<?php echo
$this->form->input('university',array('type'=>'select','options'=>array($university,'Others'=>'Others'),'empty'=>'--Select--'));?>
<div id="w" style="display: none">
University:
<input type="text" id="txtw" name="data[List][univ_txt]" />
</div>
<?php
echo $this->form->input('college',array('type'=>'select','empty'=>'--Select--'));?>
<div id="z" style="display: none">
College:
<input type="text" id="txtz" />
</div>
<?php
echo $this->form->input('address');
echo $this->form->input('phone');
echo $this->form->input('email');
echo $this->form->input('papercode');
//echo $this->from->checkbox('approved');
echo $this->form->end('Save');
?>
<?php } ?>
</div>
控制器:
function add($paper=NULL)
{
$this->loadModel('Designation');
$this->loadModel('Specialization');
$this->loadModel('University');
//$this->loadModel('College');
$this->set('designation',$this->Designation->find("list",array(
'fields'=>array('desig_name','desig_name'))));
$this->set('specialization',$this->Specialization->find("list",array(
'fields'=>array('spec_name','spec_name'))));
//echo $paper;
$this->set('paper',$paper);
$this->set('university',$this->University->find("list",array('fields'=>array('univ_name','univ_name'))));
$this->set('counter','');
if(!empty($this->data))
{ //print_r($this->data);
if(empty($this->data['Panel'][0]['name']))
{ $count1=$this->data['Panel']['firstform'];
$count2=$this->data['Panel']['secondform'];
$counter=$count1+$count2;
//print_r('llalla');
if($this->request->is('ajax'))
{ print_r($counter);
$this->set('counter',$counter);
$this->render('add','ajax');
}
}
else{
print_r('balala');
$counter=$this->data['Panel']['extra'];
print_r('MR'.$counter);
for($i=0;$i<$counter;$i++)
{
print_r($i);
if($this->data['Panel'][$i]['designation']=="Others")
{
$desig=$this->data['Panel'][$i]['desig_txt'];
$this->loadModel('Designation');
$this->Panel->create();
$this->request->data['Designation']['desig_name']=$this->request->data['Panel'][$i]['desig_txt'];
$designationid=$this->Designation->find('count',array('fields'=>array('desig_id')))+1;
$this->request->data['Designation']['desig_id']= $designationid;
//print_r($this->request->data['Designation']['desig_name']);
if($this->Designation->save($this->request->data))
{ echo "hello";}
}
else
{
$desig=$this->data['Panel'][$i]['designation'];
}
if($this->data['Panel'][$i]['specialization']=="Others")
{
$this->loadModel('Specialization');
$spec=$this->data['Panel'][$i]['spec_txt'];
$this->Panel->create();
$this->request->data['Specialization']['spec_name']=$this->request->data['Panel'][$i]['spec_txt'];
$specializationid=$this->Specialization->find('count',array('fields'=>array('spec_id')))+1;
$this->request->data['Specialization']['spec_id']= $specializationid;
//print_r($this->request->data['Specialization']['spec_name']);
if($this->Specialization->save($this->request->data))
{ echo "hello";}
}
else
{
$spec=$this->data['Panel'][$i]['specialization'];
}
//if($this->Designation->save($univ)){ echo "hello";}
if($this->data['Panel'][$i]['university']=="Others")
{
$this->loadModel('University');
$univ=$this->data['Panel'][$i]['univ_txt'];
$this->Panel->create();
$this->request->data['University']['univ_name']=$this->request->data['Panel'][$i]['univ_txt'];
$universityid=$this->University->find('count',array('fields'=>array('univ_id')))+1;
$this->request->data['University']['univ_id']= $universityid;
//print_r($this->request->data['University']['univ_name']);
if($this->University->save($this->request->data))
{ echo "hello";}
}
else
{
$univ=$this->data['Panel'][$i]['university'];
}
//if($this->Designation->save($univ)){ echo "hello";}
if($this->data['Panel'][$i]['college']=="Others")
{
$this->loadModel('College');
$college=$this->data['Panel'][$i]['college_txt'];
$this->Panel->create();
$this->request->data['College']['college_name']=$this->request->data['Panel'][$i]['college_txt'];
$collegeid=$this->College->find('count',array('fields'=>array('college_id')))+1;
$this->request->data['College']['college_id']= $collegeid;
//print_r($this->request->data['University']['univ_name']);
if($this->College->save($this->request->data))
{ echo "hello";}
}
else
{
$college=$this->data['Panel'][$i]['college'];
}
$this->Panel->query('insert into panels(salutation,name,designation,specialization,university,college,address,phone,email,papercode) values("'.$this->data['Panel'][$i]['salutation'].'","'.$this->data['Panel'][$i]['name'].'","'.$desig.'","'.$spec.'","'.$univ.'","'.$college.'","'.$this->data['Panel'][$i]['address'].'","'.$this->data['Panel'][$i]['phone'].'","'.$this->data['Panel'][$i]['email'].'","'.$this->data['Panel'][$i]['papercode'].'")');
}
$this->redirect(array('controller'=>'panels','action'=>'index',$this->data['Panel'][$i-1]['papercode']));
}
}
}
那些條件滿足你在哪裏設置'RD'? –
對不起,我沒有得到你。我想你是問$ this-> data ['List'] ['txt1']是否包含值或noot。我打印了這個。它包含該值,但變量rd未被傳遞給視圖。 – Nikita
需要檢查的幾件事: *代碼是否正在評估'rd'變量被設置的部分? *因爲您在設置'rd'後立即使用$ this-> render(),#success的所有內容都將被覆蓋,您是否真的想這麼做? *獲取支持AJAX請求的最新版本的DebugKit並檢查設置的變量。 *在此處檢查併發布Chrome開發人員工具(F12)面板的輸出。 注意:下次請正確縮進代碼。 – PedroTanaka