2013-04-25 3 views
0

У меня есть выпадающий список для сыпучего состояния загрузитьмассовое обновление статуса на изменение выпадающего списка

echo CHtml::dropDownList('updateStatus', 
       'updateStatus', 
       Lookup::items('NodeStatus'), 
       array(
         'prompt' => '', 
         'ajax'=>array(
            'type'=>'POST', 
            'url' => CController::createUrl('node/bulkStatus'), 
            'data'=> array('updateStatus' => 'js:this.value', 'autoId' => 'js:$("input[name=autoId]:checked").map(function() {return this.value;}).get().join(",")'), 
            'success'=>'reloadGrid', 
            'update'=>'#msg', //selector to update 
            ), 
           )       
       ); 
?> 

Я изо всех сил, чтобы получить значение всех проверяемого значения входного флажка в выше опции АЯКС, которые являются так:

<input id="autoId_6" type="checkbox" name="autoId[]" value="11"> 
<input id="autoId_5" type="checkbox" name="autoId[]" value="10"> 
<input id="autoId_8" type="checkbox" name="autoId[]" value="6"> 

Я просмотрел сообщение в firebug, autoId пуст и updateStatus работает нормально. Я хочу, чтобы отправить значение AutoID как массив к действию, где я могу перебрать массив:

public function actionBulkStatus() 
{ 
    if(isset($_POST['updateStatus'])) 
    { 
     $autoIdAll = $_POST['autoId']; 
     if(count($autoIdAll)>0) 
     { 
      foreach($autoIdAll as $autoId) 
      { 
       $model=$this->loadModel($autoId); 
       $model->Status = $_POST['updateStatus']; 
       $model->save(); 
      } 
     } 
     echo "successfully update"; 
    } 
} 

Как можно передать AutoID проверил значение как массив в АЯКСЕ опции данных DropDownList?

ответ

0

Сохраните это. Удалить .join(",") от .get().join(..) и флажками имена должны быть только autoId, удалите [], и вы должны поступить хорошо.

Смежные вопросы