2012-01-31 1 views
0

Я разрабатываю сайт, где при первом посещении пользователя будет предложено ввести адрес электронной почты и какой город он/она проживает. Я загрузил его с помощью 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

ответ

0

ваша проблема эта часть.

echo "<script>parent.$.fn.colorbox.close(); </script>"; 
$this->redirect(array('site/index')); 

Вы эхом что-то на своем экране, а затем перенаправляете, это невозможно. То, что вы хотите сделать, это перенаправить, не повторяя ничего. После этого вам нужно убедиться, что colorbox не открывается снова.

+0

Tks для обратной связи. Как убедиться, что colorbox не открывается снова? Контроллер перенаправляет страницу на index.php, и я поставил «echo» ";" в верхней части index.php, но страница все еще отображается внутри colorbox –

+0

Удалось решить проблему. Я использую echo в контроллере после сохранения модели –

 Смежные вопросы

  • Нет связанных вопросов^_^