gpt4 book ai didi

php - 使用表单提交 CGridView 检查值

转载 作者:可可西里 更新时间:2023-11-01 00:49:47 26 4
gpt4 key购买 nike

我有一个带有 CCheckBoxColumn 的 CGridView wigdet,如下所示:

$this->widget('zii.widgets.grid.CGridView', array(
'dataProvider'=>$dataProvider,
'columns'=>array(
array(
'class'=>'CCheckBoxColumn',
),
'title',
....
),
));

问题:如何将选中的值提交给 Controller Action ?我知道我需要一个表单、提交按钮,但我需要一个清楚的说明将东西放在哪里,以便顶部的搜索框出现。

提前致谢。

最佳答案

您并不绝对需要另一种形式。您可以只使用附加了附加 javascript 的链接。

要获取选中的值,可以调用 javascript 函数 $.fn.yiiGridView.getChecked(containerID,columnID),参见 here ,它返回一个包含 ID 的数组。

完整示例(使用 ajax):

在你看来:

<?php
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'example-grid-view-id', // the containerID for getChecked
'dataProvider'=>$dataProvider,
'columns'=>array(
array(
'class'=>'CCheckBoxColumn',
'id'=>'example-check-boxes' // the columnID for getChecked
),
'title',
....
),
));
?>
<div id="for-link">
<?php
echo CHtml::ajaxLink('SomeLink',Yii::app->createUrl('somecontroller/someaction'),
array(
'type'=>'POST',
'data'=>'js:{theIds : $.fn.yiiGridView.getChecked("example-grid-view-id","example-check-boxes").toString()}'
// pay special attention to how the data is passed here
)
);
?>
<div>

在你的 Controller 中:

...
public function actionSomeaction(){
if(isset($_POST['theIds'])){
$arra=explode(',', $_POST['theIds']);
// now do something with the ids in $arra
...
}
...
}
...

您也可以在我们通过 ajax(从 View )传递的数据中使用 json 字符串,而不是简单的字符串,但是您将使用 json_decode 而不是 explode() ()(在 Controller 中)。此外,最好在使用前验证/清理 ID。

查看 CHtml::ajaxLink 的文档了解有关 ajax 链接的更多信息。

请注意,该示例有点粗糙,因为我还没有对空的已检查 ID 数组进行检查。

关于php - 使用表单提交 CGridView 检查值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10083616/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com