【问题标题】:Getting Result From JSON, JQUERY Not functioning从 JSON 获取结果,JQUERY 不起作用
【发布时间】:2013-06-17 10:15:42
【问题描述】:

我有一些问题。我创建了一些使用 JSON 数组的应用程序。

语法使用 Jquery 1.9

逻辑是:从文本框(下面的 valobj 变量)获取值,然后写入 toprightsec div 区域。

$("#btnsearch").click(function() {
        valobj = $('#search_box').val();
        $.getJSON("search.php", { q : valobj }, function(data,result){
            //show result from database
            $('toprightsec').append("Title" + data.title)
                            .append("Intro" + data.intro_text);
            //end show result
        }, JSON);
    });

JSON 数组来自 PHP 结果。一些例子

{"content":[{"title":"Test Post 100","intro_text":"Intro Test"}]}

但是,它不起作用。有什么帮助吗?

提前致谢。

更新

$("#btnsearch").click(function() {
    valobj = $('#search_box').val();
    $.getJSON("search.php", { q : valobj }, function(data,result){
        //show result from database
        $('.toprightsec').append("Title" + data.content[0].title)
                        .append("Intro" + data.content[0].intro_text);
        console.log(data)
        //end show result
    }, JSON);

更新 2

$(document).ready(function () {

    $("#btnsearch").click(function() {
    valobj = $('#search_box').val();
    $.getJSON("search.php", { q : valobj }, function(data,result){
        //show result from database
        $.each(data.content, function() {
            $('.toprightsec').append("Title" + data.content[0].title)
                        .append("Intro" + data.content[0].intro_text);
        });

        //end show result
    }, JSON);
});

【问题讨论】:

  • 使用data.content[0].title
  • 嗨@x4rf41 它不工作。部分内容还是一样的。没有任何改变
  • 尝试使用console.log(data)查看JS中JSON的结构

标签: php jquery mysql json


【解决方案1】:

使用以下代码:

 $('.toprightsec').append("Title" + data.content[0].title)
                            .append("Intro" + data.content[0].intro_text);

代替:

 $('toprightsec').append("Title" + data.title)
                            .append("Intro" + data.intro_text);

如果toprightsec 是id,则使用#,如果类则使用.。在这里你没有指定。

【讨论】:

  • 也许他的选择器也错了。这个$('toprightsec') 会选择什么?
  • @x4rf41 我在答案中提到了它。希望这对 OP 来说是可以理解的。
  • 嗨@x4rf41 toprightsec 是一个类。请参阅更新部分
  • @randytan 然后在 toprightsec 之前使用. 并且只有一个或多个具有此类名称的标签?
  • 只有一个类:
    “toprightsec”类的内容放在这里
【解决方案2】:

您使用的是 json 数组,因此您必须访问单个数组元素而不是整个数组:

json_array.title //WRONG 
json_array[0].title //OK

试试这样的:

$("#btnsearch").click(function() {
        valobj = $('#search_box').val();
        $.getJSON("search.php", { q : valobj }, function(data,result){
            //show result from database
            if (data.length){
                var _props = data.pop().content;
                $('toprightsec').append("Title" + _props.title)
                                .append("Intro" + _props.intro_text);
            }
            //end show result
        }, JSON);
    });

【讨论】:

  • 你忘记了content数组
  • 还有一个 :D var _props = data.pop().content; 应该是 var _props = data.content.pop();
猜你喜欢
  • 1970-01-01
  • 2018-01-23
  • 2015-04-23
  • 2011-10-30
  • 2019-04-25
  • 2011-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多