【问题标题】:Recieving back JSON from php POST using jQuery / AJAX使用 jQuery / AJAX 从 php POST 接收返回 JSON
【发布时间】:2013-07-28 13:10:21
【问题描述】:

我第一次尝试使用搜索建议在示例中做出 POST 响应。这是我目前所拥有的:

$('#search').keyup(function() {
    var searchField = $('#search').val();
    if (searchField.length > 1) {

        $.ajax({
            url : "search_query.php",
            type : "POST",
            dataType: "json",  
            data : {
                query : searchField
            },
            success : function(data) {
                var output = '<div>';
                $.each(data, function(key, val) {
                    if (val.item.search(searchField) != -1) {
                        output += '<p><a href="#">' + val.item + '</a></p>';
                    };
                });
                $('#search_results').html(output);          
            }
        })
    };
});

谁能告诉我如何正确解析 JSON 响应?

【问题讨论】:

  • 这段代码中没有“in”。是否有其他代码使用“in”,或者实际上是来自 POST 的响应?
  • @Paul 对不起,我写错了错误信息。
  • 好的。您可以点击“编辑”并发布正确的错误消息吗?
  • 我在几分钟前删除了它。错误消息是 output is not defined - 这就是问题所在。
  • 好的。猜猜你解决了它。

标签: php jquery ajax json post


【解决方案1】:

您还没有将output 定义为变量,下面应该可以工作。

$('#search').keyup(function() {
    var searchField = $('#search').val();
    if (searchField.length > 1) {

        $.ajax({
            url : "search_query.php",
                    dataType : "json",
            type : "POST",
            data : {
                query : searchField
            },
            success : function(data) {
                var output = '';
                $.each(data, function(key, val) {
                    if (val.item.search(searchField) != -1) {
                        output += '<p><a href="#">' + val.item + '</a></p>';
                    };
                });

            }
        })
    };
});

【讨论】:

    猜你喜欢
    • 2012-08-02
    • 2018-09-17
    相关资源
    最近更新 更多