Я разрабатываю с Yii Framework. Я создаю два диалоговых окна на странице 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
,
Задача ещё не решена.
Других решений пока нет …