Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CJUIDialog不适用于CListView寻呼机控制器_Php_Yii - Fatal编程技术网

Php CJUIDialog不适用于CListView寻呼机控制器

Php CJUIDialog不适用于CListView寻呼机控制器,php,yii,Php,Yii,我有CListView,里面我重新设计了一个有按钮的视图,点击它会打开一个CJUI对话框 但是当我使用页面控制器进入下一页时。CJUIDialog内容将加载到页面,而无需单击按钮 知道为什么会这样吗 如果有人能帮我,那就太好了。 谢谢 好的,我会自动生成很多控件的ID,因此为了避免与事件冲突,我建议您通过以下方式将交互处理从项目视图中移除: 在生成CListView的页面中: $this->widget('zii.widgets.CListView', array( 'dataPr

我有CListView,里面我重新设计了一个有按钮的视图,点击它会打开一个CJUI对话框

但是当我使用页面控制器进入下一页时。CJUIDialog内容将加载到页面,而无需单击按钮

知道为什么会这样吗

如果有人能帮我,那就太好了。
谢谢

好的,我会自动生成很多控件的ID,因此为了避免与事件冲突,我建议您通过以下方式将交互处理从项目视图中移除:

在生成CListView的页面中:

$this->widget('zii.widgets.CListView', array(
    'dataProvider'=>$dataProvider,
    'itemView'=>'_post',   // refers to the partial view named '_post'
    'sortableAttributes'=>array(
        'title',
        'create_time'=>'Post Time',
    ),
));
$this->beginWidget('zii.widgets.jui.CJuiDialog', array(
    'id'=>'dialog',
    'options'=>array(
        'title'=>'Dialog',
        'autoOpen'=>false,
    ),
));
$this->endWidget('zii.widgets.jui.CJuiDialog');
在项目视图页面中:

echo CHtml::htmlButton('Button',array('onclick' => '$("#dialog").dialog("open");'));
如果需要对数据行执行某些操作(例如使用该数据的id属性),可以创建一个自定义javascript函数,在单击按钮时接收数据

echo CHtml::htmlButton('Button',array('onclick' => 'myFunction('.$data->id.')'));
前面的例子是:

<?php
$this->widget('zii.widgets.CListView', array(
    'dataProvider'=>$dataProvider,
    'itemView'=>'_post',   // refers to the partial view named '_post'
    'sortableAttributes'=>array(
        'title',
        'create_time'=>'Post Time',
    ),
));
$this->beginWidget('zii.widgets.jui.CJuiDialog', array(
    'id'=>'dialog',
    'options'=>array(
        'title'=>'Dialog',
        'autoOpen'=>false,
    ),
));
$this->endWidget('zii.widgets.jui.CJuiDialog');
?>
<script type="text/javascript">
function myFunction(id) {
    // you can put whatever you need inside the dialog 
    $("#dialog").html(id);
    // open the dialog
    $("#dialog").dialog("open");
}
</script>

函数myFunction(id){
//您可以在对话框中放入所需的任何内容
$(“#dialog”).html(id);
//打开对话框
$(“对话框”)。对话框(“打开”);
}

您将生成CJUIDialog的代码放在哪里?在CListView的项目视图中?是。。。它在项目视图中..k…酷的场景。。。这很好用。。。但是如果我有100个条目,我就必须有100个具有唯一ID的对话框,是吗?或者有没有一种方法可以将参数从items页面发送到对话框?我已经用第二个场景的更多细节更新了代码。注意,只有一个jQueryUI对话框,但您可以通过javascript根据从项目视图中的$data检索到的一些数据更改其内容(您可以将这些数据作为参数传递给javascript函数)。