我正在制作成绩单系统。我创建了一个表单,我们可以在其中添加类名,会话年份以及节的编号和名称。对于会话,我们使用了javascript datepicker。添加我正在使用ajax的部分的名称。
我的控制器类是addclasses_controller.php
<?php
class AddclassesController extends AppController
{
var $name='Addclasses';
var $helpers = array('Html', 'Javascript', 'Ajax');
var $components = array('Auth', 'RequestHandler');
var $uses=array('Addclass','User');
function add()
{
$this->layout = 'internal';
debug($this->data);
}
function addsection()
{
$noofsection=$this->data['Addclass']['section'];
$this->set('noofsection',$noofsection);
}
}
?>
,模型类名称为addclass.php
在视图部分中,add.ctp
<table cellpadding="0" cellspacing="0" width="100%">
<tr>
<td colspan="3">Add Class
</tr>
<tr>
<td colspan="3">
</tr>
<?php echo $form->create('Addclass', array('url' => array('controller' => 'addclasses', 'action' => 'add'))); ?>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Class Name</td>
<td></td>
<td><?php echo $form->text('classname',array('class' => 'users')); ?></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Session Calender</td>
<td><input type="text" name="data[Addclass][sdate]" id="AddclassSdate" size="13" datepicker="true" datepicker_format="DD/MM/YYYY" value="<?php echo date('d/m/Y'); ?>"></td>
<td><input type="text" name="data[Addclass][edate]" id="AddclassEdate" size="13" datepicker="true" datepicker_format="DD/MM/YYYY" value="<?php echo date('d/m/Y'); ?>"></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>The Number of Section which you want to add</td>
<td></td>
<td><?php echo $form->text('section',array('class' =>'users')); ?></td>
</tr>
<?php echo $ajax->observeField( 'AddclassSection',array('url' => array('controller'=>'addclasses', 'action' =>'addsection'),'frequency' => 0.2,'onChange'=>true,'update'=>'employers'));?>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td colspan="3"><div id="employers"></div></td>
</tr>
<tr>
<td colspan="3" ><?php echo $form->end('Submit');?></td>
</tr>
</table>
和addsection.ctp
<table cellpadding="0" cellspacing="0" width="80%" align="center">
<?php
for($i=1; $i<=$noofsection; $i++) {
$section="AddclassSec".$i;
$arr="sec".$i;
$section_name ="data[Addclass][$arr]";
?>
<tr>
<td>Section-<?php echo $i?></td>
<td></td>
<td><input type="text" id="<?php echo $section ?>" value="" class="users" name="<?php echo $section_name ?>"/></td>
</tr>
<tr>
<td colspan="3"> </td>
</tr>
<?php } ?>
</table>
当我提交数据时,检查它然后在Mozilla中打印数据,我找不到会话日历数据或该部分的名称。但在IE7中它运行正常。为什么呢?
答案 0 :(得分:1)
在add.ctp中,将$ form-&gt;创建调用移至open table标记之前,将$ form-&gt; end调用移至close表标记之后。表格中的Firefox,Ajax和表单内容的组合是有问题的。
答案 1 :(得分:0)
出于调试目的,您可以尝试简化表单。我没有检查,但你的表单中有很多表格HTML,可能会破坏它,所以它不会被提交。这是我目前唯一能想到的。