0

问题:当我加载页面时,get_user_list(); 不起作用。它没有附加任何返回的编码 JSON。jQuery.parseJSON$ .parseJSONjQuery.getJSON不起作用。_

我对正在发生的事情的猜测: 也许我应该在网上尝试一下,看看它是否真的有效。我相当确定它是 parseJSON 不工作的那个。

我尝试过什么来解决我的问题?

  1. 我尝试使用 $.getJSON 但这不起作用,因为它给了我一个 403 错误。
  2. 我尝试下载 jQuery 库并在本地加载它,而不是从 Google 的库中获取它
  3. 在向数据库中插入数据时使用 addlashes()。

这是我正在使用的 AJAX。

$(document).ready(
    function () {
        get_user_list();
    });

function get_user_list() {
    $.post("ajax.php", {
        task:   "get_user_list"
    }, 
    function(data) {
        $('#responseText').val(data); //This ACTUALLY WORKS
        var people = jQuery.parseJSON(data); //Problem here
        for (var i in people) {
            var opt = "<option value='" + people[i].id + "'>" + people[i].first_name + "</option>";
            $('#subsriber').append(opt);
        }
    });
}

这是 HTML:

<select id="subscriber">
    <option value="0" selected>Select Subscriber</option>
</select>

这是一段编码的 JSON,将作为“数据”返回:

[{"id":"1","first_name":"Mother","last_name":"Teresa"},{"id":"2","first_name":"Martin","last_name":"Lutherking"}]

如果有人能引导我走向正确的方向,那就太好了。谢谢你。

4

1 回答 1

0

我的猜测是你得到一个已经解析的数据,所以试试

function get_user_list() {
    $.post("ajax.php", {
        task: "get_user_list"
    }, function (people) {
        $('#responseText').val(people); //This ACTUALLY WORKS

        $.each(people, function (idx, person) {
            var opt = "<option value='" + person.id + "'>" + person.first_name + "</option>";
            $('#subsriber').append(opt);
        })
    }, 'json').fail(function (jqXhr, status, error) {
        alert(status + ':' + error + ':' + jqXhr.responseText);
    });
}
于 2013-10-13T06:43:28.603 回答