在jquery ajax中传递参数导致未定义

时间:2014-07-16 19:15:54

标签: javascript jquery ajax

我是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脚本中显示为未定义。我该怎么解决这个问题呢。

5 个答案:

答案 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的参数获取。