在用户点击问号图标时遇到问题我正在尝试创建弹出文本框。但是,出于某种原因,一旦页面加载,弹出窗口就会显示出来。我在视图中有以下代码。我已经尝试将自动打开更改为false,但是链接根本不会打开对话框。非常感谢你的帮助!
<?php $question=CHtml::image(Yii::app()->request->baseURL. '/images/question_blue.ico');
echo CHtml::link($question, '#', array('onclick'=>'$("#help").dialog("open"); return false;',)) ?>
$this->renderPartial('application.views.profile.helppopup');
以下代码在我的对话框中(“帮助”)
<?php
$this->beginWidget('zii.widgets.jui.CJuiDialog', array(
'id'=>'help',
// additional javascript options for the dialog plugin
'options'=>array(
'title'=>'Help',
'autoOpen'=>true,
'width'=>'350px',
'height'=>'450',
'resizable'=>false,
),
));
答案 0 :(得分:0)
@jason 喜
我在“创建形式”中使用了CjuiDialog,它的工作正常。我将我的代码作为样本发布到您的问题中以获得一个想法 我的代码如下 在我看来
<?php echo CHtml::link('Create Books', "", // the link for open the dialog
array(
'style'=>'cursor: pointer; text-decoration: underline;',
'onclick'=>"{addBooks(); $('#dialogBooks').dialog('open');}"));?>
<?php
$this->beginWidget('zii.widgets.jui.CJuiDialog', array( // the dialog
'id'=>'dialogBooks',
'options'=>array(
'title'=>'Create Books',
'autoOpen'=>false,
'modal'=>true,
'width'=>550,
'height'=>470,
),
));?>
我的js将数据链接到控制器
<script type="text/javascript">
function addBooks()
{
<?php echo CHtml::ajax(array(
'url'=>array('Books/create'),//your controller action
'data'=> "js:$(this).serialize()",
'type'=>'post',
'dataType'=>'json',
'success'=>"function(data)
{
if (data.status == 'failure')
{
$('#dialogBooks div.divForForm').html(data.div);
// Here is the trick: on submit-> once again this function!
$('#dialogBooks div.divForForm form').submit(addBooks);
}
else
{
$('#dialogBooks div.divForForm').html(data.div);
setTimeout(\"$('#dialogBooks').dialog('close') \",3000);
}
} ",
))?>;
return false;
}
在控制器中行动
//For using create form with dialogue box
public function actionCreate(){
$model=new Books;
if(isset($_POST['Books']))
{
$model->attributes=$_POST['Books'];
if($model->save())
{
if(Yii::app()->request->isAjaxRequest)
{
echo CJSON::encode(array(
'status'=>'success',
'div'=>"Books successfully added"));
exit;
}
else
$this->redirect(array('view','id'=>$model->book_id));
}
}
if (Yii::app()->request->isAjaxRequest)
{
echo CJSON::encode(array(
'status'=>'failure',
'div'=>$this->renderPartial('_form', array('model'=>$model), true)));
exit;
}
else
$this->render('create',array('model'=>$model));}
上面的代码只是为了得到一个想法......不是精确的o / p代码 谢谢
答案 1 :(得分:0)
我没有工作,但你的错误可能
$this->renderPartial('application.views.profile.helppopup');
你应该把它放在onclick event.do这样的东西
'onclick'=>"{help(); $('#help').dialog('open');}"));?>
尝试这样的事情,不确定答案
<script>
function help()
{
$this->renderPartial('application.views.profile.helppopup');
}
</script>
我没有测试你只是尝试这样的事情
答案 2 :(得分:0)
更改CJuiDialog
配置中的以下行:
'autoOpen'=>true,
为:
'autoOpen'=>false,