我是jQuery的新手。我正在使用jquery ajax创建级联下拉列表。因此,根据第一个下拉列表的更改值,第二个脚本从第二个下拉列表中获取数据库中的值。
<script>
$(document).ready(function () {
$("#builder_group").change(function () {
var selected_builder = $(this).val();
alert(selected_builder);
$.ajax({
type: 'POST',
url: 'getGroupzCode.php',
data: 'selected_builder',
datatype: 'json',
success: function (data) {
// Call this function on success
console.log(data);
var yourArray = JSON.parse(data);
console.log(yourArray);
$.each(yourArray, function (index, yourArray) {
$('#builder_group1').append($('<option/>', {
value: yourArray.id,
text: yourArray.name,
}));
});
},
error: function () {
displayDialogBox('Error', err.toString());
}
});
});
});
</script>
问题是当我从第一个下拉列表中提醒所选值时它工作,即alert(selected_builder)有效,但是当我尝试将其传递给脚本时,它在PHP脚本中显示为未定义。我该怎么解决这个问题呢。
答案 0 :(得分:1)
不要把它作为字符串传递。
data: selected_builder,
答案 1 :(得分:1)
您传递的字符串为data
。尝试传递selected_builder
而没有周围的'
,如下所示:
data: selected_builder,
答案 2 :(得分:1)
data: 'selected_builder'+data
它应该是键值对
答案 3 :(得分:1)
传递变量名而不是字符串。
data: selected_builder,
答案 4 :(得分:1)
当作为json字符串传递时(使用jQuery ajax发送),让本机javascript的东西为你做。将您的数据作为正确的JSON字符串传递给您的目标。
data : JSON.stringify({ selected_builder : selected_builder})
这将允许您的接收方法将数据作为名为selected_builder的参数获取。