散装状态更新
问题描述:
我有下拉列表散装状态上传散装状态更新
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数据选择一个数组?
答
保持简单。 删除.join(",")
从.get().join(..)
和复选框的名称应该只是autoId
,删除[]
,你应该做的很好。