我正在尝试通过FancyBox传递JavaScript变量,以便我可以在出现的窗口中访问它们。到目前为止,我有以下代码:
<script type="text/javascript">
var s;
var e;
var fancyboxdata = new Array();
$(function(){
$('#post_code').blur(function(){
s = $('#post_code').val();
});
});
function map_routes(e){
if ((s.length !== 0) && (e.length !== 0)) {
document.getElementById('map_routes_button').style.visibility="visible";
fancyboxdata[s] = s;
fancyboxdata[e] = e;
} else {
document.getElementById('map_routes_button').style.visibility="hidden";
}
}
</script>
...
<script type="text/javascript">
$(document).ready(function() {
$("a.iframe_maps").fancybox({
ajax: {
type: "POST",
data: fancyboxdata
},
'hideOnContentClick': true,
'height': 600,
'padding': 0,
'width': 700,
'type': 'iframe'
});
});
</script>
在这个阶段,我知道fancyboxdata数组包含数据,但我不确定FancyBox函数中的Ajax参数,它应该传递数组变量。
在出现的窗口中,我有:
<?php
print_r($_POST);
echo $_POST['s'];
?>
<script>
(function() {
alert(fancyboxdata[s]);
})();
</script>
除了调试器中的空数组和错误外,没有任何内容出现。
有什么想法吗?
答案 0 :(得分:0)
你能不能像在这个问题中那样单独监听表单的提交和AJAX调用(使用jQuery)?
答案 1 :(得分:0)
像data: "phpVar="+fancyboxdata
fancyboxdata(这是你的javascript数组变量)和
phpVar {将调用你的php页面。它持有fancyboxdata。}
for codeigniter-fancybox你试试下面的代码。可能是'
$.fancybox({
'width' : 900,
'height' : 390,
'autoScale' : true,
'transitionIn' : 'none',
'transitionOut' : 'none',
'href' : 'page.php?id='+9,
'type' : 'iframe'
});
然后使用$ _get ['id']