我有一个 JAVASCRIPT 数组,如下所示:
postarray['min_price'] = 120000;
postarray['max_price'] = 150000;
我试图通过 jQuery .post 函数将它传递给 AJAX 调用,以便 .PHP 文件以这种格式获取它:
$_REQUEST['query']['min_price'] = 120000;
$_REQUEST['query']['max_price'] = 150000;
到目前为止我已经尝试过:
$.post("ajax_findproperties.php", {query: postarray},
function(data){
// processing function with JSON result
}
,'json');
但是我运气不好。我什至尝试将 var postarray 更改为查询,然后尝试用 query.serialize()
代替括号中的变量 block ,但也没有成功。
当我在 Firebug 上检查我的状态时,AJAX 调用绝对没有设置任何 POST 变量 - 完全空白。
最佳答案
javascript 数组不是一个数组,它是一个对象。之前定义它:
var postarray = {};
postarray['min_price'] = 120000;
postarray['max_price'] = 150000;
或替换为:
var postarray = {
min_price: 120000,
max_price: 150000
};
现在 JSON.stringify 起作用了:
alert(JSON.stringify(postarray));
另见 example .
但是这个对象也应该在没有 JSON.stringify() 的情况下发送:
$.post("ajax_findproperties.php", {query: postarray}, ... );
关于Javascript 数组到 jQuery .post AJAX 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8773390/