新しいFancyboxiframeに表示される投稿プレビューを実行しようとしています。数週間以来、私はいくつかのヘルプやベストプラクティスを探していますが、それを見つけることができません。
私の主な問題は、(データベースを更新する前に)フォームからFancyboxウィンドウにデータを渡すことです。私のAJAXスキルは非常に貧弱なので、私の問題はそれほど難しくないかもしれません。
コードを確認してください:
$('.preview2').fancybox({
fitToView : false,
width : 905,
height : 505,
autoSize : false,
closeClick : false,
openEffect : 'none',
closeEffect : 'none',
ajax: {
type: "POST",
cache : false,
url: "preview.php",
data: $('#postp').serialize()
}
});
そして、呼び出しリンク:
<a class="preview2" data-fancybox-type="iframe" href="preview.php" id="preview2">Preview</a>
変数を投稿して適切な場所に出力するだけで、preview.phpファイルですべてがうまくいくとほぼ確信しています。
誰かがFancybox/AJAX部分をチェックできますか?
コメントで述べたように、プレビューボタンはajax経由でフォームを送信して、POSTプレビュー値を取得する必要があります(ajax
の代わりにiframe
を使用します) ) そう :
_<a class="preview2" data-fancybox-type="ajax" href="preview.php" id="preview2">Preview</a>
_
次に、プレビューボタンを手動のon("click")
メソッドにバインドして、最初にajax
経由でフォームを送信し、次に次のように結果をfancyboxに投稿する必要があります。
_$(document).ready(function () {
$('.preview2').on("click", function (e) {
e.preventDefault(); // avoids calling preview.php
$.ajax({
type: "POST",
cache: false,
url: this.href, // preview.php
data: $("#postp").serializeArray(), // all form fields
success: function (data) {
// on success, post (preview) returned data in fancybox
$.fancybox(data, {
// fancybox API options
fitToView: false,
width: 905,
height: 505,
autoSize: false,
closeClick: false,
openEffect: 'none',
closeEffect: 'none'
}); // fancybox
} // success
}); // ajax
}); // on
}); // ready
_
[〜#〜] demo [〜#〜]を参照してください(ソースコードを自由に調べてください)
私は機能するfancyboxでもっと面白い方法を試しましたが、
fancyboxページで
var myvar;
$(document).ready(function(){
myvar = parent.$("#formvariwant").val();
});