使用AJAX收集表格输入

时间:2012-01-23 09:18:59

标签: ajax yii tabular

我想使用表格数据收集,但我遇到了一些问题。看你必须使用

<?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

1 个答案:

答案 0 :(得分:2)

为什么要在ajax链接中发送$key两次?在这里:

array('hotel/AddImageRow','key'=>++$key)

在这里:

 'data'=> array( 'key'=> ++$key )

可能会导致一些破坏价值的故障。