我有两个选择元素,A和B:当A的选择的选项更改时,B的选项必须相应地更新。A中的每个元素都隐含着B中的许多元素,这是一对多的关系(A包含国家,B应该包含位于给定国家中的城市)。
该函数do_ajax
应运行异步请求:
function do_ajax(elem, mydata, filename)
{
$.ajax({
url: filename,
context: elem,
data: mydata,
datatype: "html",
success: function (data, textStatus, xhr) {
elem.innerHTML = data;
}
});
}
为了更新B的选项,我在A的onChange
事件中添加了一个函数调用。这A
是触发onChange事件(of )时运行的函数:
function my_onchange(e) // "e" is element "A"
{
var sel_B = ... ; // get select element "B"
// I skipped some code here
// ...
var data = {
'mode': 'filter_city',
'id_A': e[e.selectedIndex]
};
do_ajax(city_sel, data, 'ajax_handler.php');
}
}
我已经阅读了JQuery文档,该文档data
可以是数组(键值对)。我输入以下错误:
var data = {
'mode': 'filter_city',
'id_A': e[e.selectedIndex]
};
相反,如果我的数据是字符串,我不会得到该错误:
var data = 'mode=filter_city&id_A=' + e[e.selectedIndex];
但是我需要在服务器端php代码中使用变量的“数组版本”。
在Uncaught TypeError: Illegal invocation
位于“jQuery的1.7.2.min.js”的文件,这是所有的压缩,所以我无法弄清楚哪些代码部分提出的错误。
我可以更改代码中的任何设置,以便它接受数据作为关联数组吗?