我有一个应用程序,它有一个主页和一个带有复选框的表单;chk-bxs 表示要从 MySQL 数据库返回的列数据。
我试图实现的行为是:
- 用户选中/取消选中主页上的复选框
- 用户单击链接到将运行查询的页面
- 服务器通过 getJSON 调用接收复选框状态,由主页的卸载触发。PHP 加载 $_SESSION[] w/ chk-bxs 状态
- 然后服务器使用 $_SESSION[] 中的数据处理链接调用,以确定要返回哪些列数据并在结果中显示在表中
如果我在 getJSON 调用的最后一个成员分配处放置一个断点并单步执行,我可以实现这一点。如果没有这一步,getJSON 调用似乎不会发生;因此 chk-bxs 值不会传输到服务器。谁能解释这种行为?有没有更好的方法来解决这个问题?任何想法将不胜感激。
这是 index.php 文件的 head 部分中的代码,它调用将执行 getJSON 调用的函数:
$(window).on('beforeunload', function(){
indexFormUnload(); // this saves the state of the SELECT check-boxes
});
这是构造 getJSON 调用的代码 - 它位于 index.php 文件中包含的单独文件中:
function indexFormUnload(){
var ckBxValues = $(":input").serializeArray();
$.getJSON("ajaxJQ_server.php", // server page called by jquery
{ // Data sent via ajaxJQ
"callingForm": "index",
"callingElementID" : null,
"locStorage": ckBxValues,
"callingState": "unload",
"tableName": null
}
);
}