2013-04-25 63 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 
            ), 
           )       
       ); 
?> 

我努力让它们像这样在上述AJAX选项输入复选框全部选中值的值:

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

我看过萤火虫后,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"; 
    } 
} 

如何传递的自动识别检测值在下拉列表的AJAX数据选择一个数组?

回答

0

保持简单。 删除.join(",").get().join(..)和复选框的名称应该只是autoId,删除[],你应该做的很好。