2012-02-25 16 views
1

私のPHPセクションに問題があります。open colorbox from php

私は登録フォーム.phpを持っており、iframeカラーボックスに投稿した後に というメッセージが返信されます。 私はこれまでに 登録フォーム.phpに含まれていた別個の応答.phpを持っています。今までは インクルードレスポンス.phpの表に表示されます。それほどいいとは思えませんので、私は をカラーボックスで開きます。

私はそのビジネスで新しく、長い間回答を探しましたが、 は成功しません。

だから私を助けてくれる人がいます。私の考えは、 URLを返信用の.phpで、返信用の.phpではなく、 のように返信することでした。次に私が考えたのは、 -class iframeのリンクをURLのように追加することでした.HTML本体のように、私は の利用規約にcolorboxを使用しています。

助けることができる人がいれば本当に感謝します。ありがとう。

+0

使用しているコードを表示できますか?とにかく、あなたは(onsubmit、onclick ..)を発射するためにjsイベントを必要とするかもしれませんし、それにcolorboxをつけてください。ちょっと推測すると、 –

答えて

1

まあ...あなたはクライアントとセバーサイドアクションを混乱させる。 colorboxは、サーバーではなくクライアント上で動作するものであることに注意してください。したがって、ページの動作を変更する必要があります。

フォームが送信されたバージョン1は、文書のロードが終了したら、カラーボックスを開きます出力JavaScriptコードにご回答のPHPファイルを使用します。このような何か:

<?php if (isset($_POST['submitted'])): ?> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
     // open your colorbox here 
    }); 
</script> 
<?php endif; ?> 

バージョン2

は、AJAXのソリューションによって、あなたの標準フォームを交換してください。送信ボタンがクリックされたら、jQueryを使用してrespone PHPファイルへのAJAXリクエストを行います。こうすることで、リクエストが処理されている間にカラーボックスを表示することができます。完了したら、カラーボックスを非表示にしたり、別のものを表示したりできます。

あなたはSOまたはjQueryのドキュメントのいずれかで、ここでjQueryを使ってAJAXリクエストを行う方法についての負荷を見つけることができます:http://api.jquery.com/jQuery.post/

バージョン3

醜いソリューションにJavaScriptを使用することですiframeを含むカラーボックスを開き、<form>タグのtarget="iframename "を使ってこのiframeにフォームを送信してください。これはおそらくあなたがしたいことに最も近い解決策ですが、すべての可能性の中で最も醜いものです。 )

+0

とはいえ、habe gerade gesehen、dass sie aus dresden kommen。戦争それはアメリカ人の旗であり、アメリカ人はアメリカ人です。私はあなたの目の前で、あなたの目の前で、あなたの目の前で見たことがあるのか​​どうかは分かりませんでした。ビール・ダンク・アンド・ベスト・グラッセ・オーズ・ベルリン – John

+0

まあ...それはウェブサイトであり、それは国際的な定義によるものです。そして、SOは、問題解決のためにすべての人が閲覧するための質問と回答の集まりであるため、誰でも知識の恩恵を受けることができるように英語を書くのが慣習です。 –

1

は、あなたは私の質問に答えるために、

$("#myForm").submit(function(){ 
var formData = $(this).serializeArray(); 
$.ajax({ 
       'type':'post', 
       'data':formData , 
       'url':'action-page-url.php', 
       'cache':false, 
       'success':function(r){ 
          $("body").append("<div id='response'></div>"); 
          $("#response").hide().html(r).colorbox(); 
          } 
     }); 
return false; // To override non-ajax submitting 
}); 
1

大丈夫..

おかげでAJAXを使用してフォームを送信し、AJAX呼び出しページに表示され、同じページ上のカラーボックスでそのメッセージを表示するメッセージを書き込むことができます。

私はほぼ同じ問題を抱えていた誰かからAjaxのソリューションのためのコードが見つかりました:

$("#link").colorbox({ inline:true, href: "#msg"}); 
$('input[type="submit"]').click(function(){ 
    $.ajax({ 
     type: "POST", 
     url: "form.php", 
     data: $('intpu[type="text"]').serialize(), 
     success: function(data){ 
      $("#msg").html(data); 
      $("#link").click(); 
      return false; 
     } 
    }); 
    return false; 
}); 

とhtmlコード

<form name="exam" method="post"> 
     <input size="60" type="text" name="quote" /> 
     <input type="submit"> 
</form> 
<a id="link" style="display:none"></a> 
<div id="msg" style="display:none;"></div> 

私はそれを実装するための最良の方法はないと思います応答メッセージ。ページのソースコードを見ている人は誰でも応答メッセージを読むことができます。私は最初のバージョンのようなPHPのバージョンを隠してサーバーをpreferaしたいが、それdoesntの仕事。私は、Submitをクリックした後、カラーボックスを開くが、応答に統合されて#messageます

$.colorbox({iframe:true, href:"msgToUser.php" 

のようなセレクタせずにカラーボックスを開きますとき。 PHPファイルは表示されません。別の問題は、私がフォームを送信しようとしたときに、エントリがないためにエラーが発生するということです。カラーボックスも同様に開かれます。

ベルリン、ドイツからの最高の願い。

+0

ちょっとしたアドバイス:あなた自身の質問に答えることができます...問題ありません。しかし、それが実際に答えである場合に限ります。その他のご質問がある場合は、最初の投稿を編集して新しい質問を追加するか、別の質問を作成してください。答えはむしろ混乱しているので、これはフォーラムではなく、より多くの質問を投稿します。 :) –