Я разрабатываю сайт, где при первом посещении пользователя будет предложено ввести адрес электронной почты и какой город он/она проживает. Я загрузил его с помощью colorbox и iframe. Вот код в main.php:Закрыть iframe в colorbox после отправки формы
Yii::app()->clientScript->registerScript('',
"$('document').ready(
function()
{
$.fn.colorbox({href:'http://www.veevou.com/visitor/create',
iframe:true,'width':'365px', 'height':'510px', onClosed:function(){ location.reload(true); }});
}
)");
$colorbox = $this->widget('application.extensions.colorpowered.ColorBox');
$colorbox
->addInstance('.colorbox', array('maxHeight'=>'80%', 'maxWidth'=>'80%'));
Итак, вы видите, Colorbox воздаст страницы create.php и после того, как форма отправлена, контроллер будет сохранять данные затем перенаправить на главную страницу.
Это контроллер:
if(isset($_POST['Visitor']))
{
$model->attributes=$_POST['Visitor'];
// Register only if he/she is not registered as member nor visitor
if($model->save())
{
echo "<script>parent.$.fn.colorbox.close(); </script>";
$this->redirect(array('site/index'));
}
}
else
{
$this->render('form',compact('model'));
}
Но он говорит: "не может изменить заголовки уже прислал ...". Как закрыть colorbox? Я попытался поставить «parent. $. Fn.colorbox.close();» перед перенаправлением на другую страницу, но это не сработало. Где я должен положить $ .fn.colorbox.close()? Я пробовал несколько методов в другом сообщении, но никто не работает для меня. Thanks
Tks для обратной связи. Как убедиться, что colorbox не открывается снова? Контроллер перенаправляет страницу на index.php, и я поставил «echo» ";" в верхней части index.php, но страница все еще отображается внутри colorbox –
Удалось решить проблему. Я использую echo в контроллере после сохранения модели –