我们正在尝试两种发布到相同动作的表单。 我们试图从第一个表单中检索输入字段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