我想使用表格数据收集,但我遇到了一些问题。看你必须使用
<?php echo CHtml::activeTextField($item,"[$i]name"); ?>
与
上面的关键是$i
这将最终帮助我们在控制器中遍历所有记录。
现在问题是什么? 我正在尝试通过
实现AJAX
。现在我需要某种变量来跟踪索引。这就是我所坚持的。
另一方面,当我点击添加时,我的表单会添加字段,并且它们很好。你如何管理索引?
以下是我的完整代码
控制器
public function actionAddHotelPictures($id,$key)
{
$model = new HotelImages;
$this->render('hotelPicture',array(
'model'=>$model,
'key'=>$key,
));
}
public function actionAddImageRow()
{
$key = $_GET['key'];
$this->renderPartial('_singleImageRow', array('key'=>$key, 'model'=>new HotelImages),false,true);
}
查看
<?php
echo CHtml::ajaxLink(Yii::app()->createUrl('/AddImageRow'),
array('hotel/AddImageRow','key'=>++$key),
array(
'type' => 'GET',
'update'=>'#asd',
'success' => "function( data )
{
alert(data)
//$('table tbody').append(data);
}",
'error'=>"function( xhr )
{
alert(this.url)
}",
'data'=> array( 'key'=> ++$key )
)
);
?>
_singleImageRow
<tr>
<td>Image Title <?php echo $key;?></td>
<td><?php echo CHtml::activeTextField($model,"[$key]title"); ?></td>
<td>Image</td>
<td><?php echo CHtml::fileField('Immagini[immagine]'); ?></td>
</tr>
即使我在Ajax函数中递增$ key,但我不知道为什么它仍然每次都传递相同的值,这是从actionAddHotelPictures
获得的值的一个增量值对于ex,如果2作为键传递,那么每次3在ajax中传递给actionAddImageRow,无论你多少次点击它 0
答案 0 :(得分:2)
为什么要在ajax链接中发送$key
两次?在这里:
array('hotel/AddImageRow','key'=>++$key)
在这里:
'data'=> array( 'key'=> ++$key )
可能会导致一些破坏价值的故障。