kac*_*per 6 javascript forms ajax jquery fancybox
我正在尝试进行预览,这将出现在新的Fancybox iframe中.几个星期以来,我正在寻求一些帮助或最佳实践,但我找不到它.
我的主要问题是将数据从表单(更新数据库之前)传递到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()
}
});
Run Code Online (Sandbox Code Playgroud)
和一个呼叫链接:
<a class="preview2" data-fancybox-type="iframe" href="preview.php" id="preview2">Preview</a>
Run Code Online (Sandbox Code Playgroud)
我几乎可以肯定使用preview.php文件,只需发布变量并将其打印在正确的位置即可.
有人可以检查Fancybox/AJAX部分吗?
JFK*_*JFK 18
正如我在评论中提到的,您的预览按钮应该通过ajax提交表单以获取POST预览值(我们将使用ajax
而不是iframe
),所以:
<a class="preview2" data-fancybox-type="ajax" href="preview.php" id="preview2">Preview</a>
Run Code Online (Sandbox Code Playgroud)
然后你需要将预览按钮绑定到手动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
Run Code Online (Sandbox Code Playgroud)
查看DEMO(随意浏览源代码)
归档时间: |
|
查看次数: |
37992 次 |
最近记录: |