Сбор табличного ввода с помощью AJAX - PullRequest
2 голосов
/ 23 января 2012

Я хочу использовать сбор табличных данных, но столкнулся с некоторыми проблемами. посмотри как надо использовать

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

        }

View

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

Даже если я увеличиваю $ key в Ajax-функции, но я не знаю, почему он по-прежнему каждый раз передает одно и то же значение, равное одному приращению к значению, которое было изначально задано из actionAddHotelPictures

Например, если 2 было передано в качестве ключа, то каждый раз, когда 3 передается в ajax в actionAddImageRow, независимо от того, сколько раз вы нажимаете на него 0

1 Ответ

2 голосов
/ 24 января 2012

Почему вы отправляете $key дважды по ссылке ajax?Здесь:

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

и здесь:

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

Возможно, это вызывает некоторую неисправность, которая искажает значения.

...