我正在开发Yii框架。我在Yii页面中创建了两个对话框来创建一些模型。第一个弹出正确,但第二个不弹出。
我写了视图文件。 view.php
如下:
<?php
$this->menu=array(
//array('label' => Yii::t('app', 'Publier à un contact'), 'url' => array('publierAContact', 'id_p'=> $model->id_publication, 'id_e' => $model->id_evenement)),
array('label' => Yii::t('app', 'Publier à un contact'), 'url' =>'#','linkOptions' => array(
'onclick' => "{publierAContact(); $('#dialogContact').dialog('open');}",
)),
array('label' => Yii::t('app', 'Publier à un groupe'), 'url' => '#', 'linkOptions' => array(
'onclick' => "{publierAGroupe(); $('#dialogGroupe').dialog('open');}",
))
);
$this->beginWidget('zii.widgets.jui.CJuiDialog', array(
'id' => 'dialogContact',
'options' => array(
'title' => 'Publier à un contact',
'autoOpen' => false,
'modal' => true,
'width' => 550,
'height' => 200,
),
));
echo "<div class='divForForm'></div>";
$this->endWidget('zii.widgets.jui.CJuiDialog');
$this->beginWidget('zii.widgets.jui.CJuiDialog', array(
'id' => 'dialogGroupe',
'options' => array(
'title' => 'Publier à un groupe',
'autoOpen' => false,
'modal' => true,
'width' => 550,
'height' => 200,
),
));
echo "<div class='divForForm'></div>";
$this->endWidget('zii.widgets.jui.CJuiDialog');
?>
<script type='text/javascript'>
function publierAContact()
{
<?php echo CHtml::ajax(array(
'url' => array('Publication/PublierAContact', 'id_p'=>$id_p, 'id_e' =>$id_e),
'data' => "js:$(this).serialize()",
'type' => 'post',
'dataType' => 'json',
'success' => "function(data)
{
if(data.status == 'failure')
{
$('#dialogContact div.divForForm').html(data.div);
//Here is the trick: on submit-> once again this function!
$('#dialogContact div.divForForm form').submit(add);
}
else
{
$('#dialogContact div.divForForm').html(data.div);
setTimeout(\"$('#dialogContact').dialog('close');refreshDisciplines();\", 1000);
document.location.reload();
}
}"
));?>
return false;
}
function PublierAGroupe()
{
<?php echo CHtml::ajax(array(
'url' => array('Publication/PublierAGroupe', 'id_p' => $id_p, 'id_e' => $id_e),
'data' => "js:$(this).serialize()",
'type' => 'post',
'dataType' => 'json',
'success' => "function(data)
{
if(data.status == 'failure')
{
$('#dialogGroupe div.divForForm').html(data.div);
//Here is the trick: on submit-> once again this function!
$('#dialogGroupe div.divForForm form').submit(add);
}
else
{
$('#dialogGroupe div.divForForm').html(data.div);
setTimeout(\"$('#dialogGroupe').dialog('close');refreshDisciplines();\", 1000);
document.location.reload();
}
}"
));?>
return false;
}
</script>
不幸的是,我的第二个对话框无法显示。有人可以帮我知道什么是错的吗?
修改:
必须正确调用该函数:
'onclick' => "{PublierAGroupe(); $('#dialogContact').dialog('open');}",
因为函数的标识符是publierAGroupe
。