私は最初に訪問したときに、メールを入力し、どの都市に住んでいるかを入力するサイトを開発しています。私はcolorboxとiframeを使ってそれを読み込んだ。フォームを送信した後、カラーボックスでiframeを閉じる
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%'));
だから、あなたが見る、ページcreate.phpをレンダリングすると、フォームが送信された後、コントローラは、データが保存されますカラーボックスは、インデックスページにリダイレクト:ここでmain.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()をどこに置くべきですか?私は別の投稿でいくつかの方法を試しましたが、私のためにはうまくいきません。ありがとう
フィードバックのTks。 colorboxが再び開かないようにするには?コントローラはページをindex.phpにリダイレクトし、 "echo" ";" index.phpの上部にありますが、ページはまだカラーボックスの中に表示されています –
解決するために管理しました。私はエコーを使用します –