从AJAX响应中提取值

时间:2014-11-11 08:00:50

标签: javascript php jquery arrays ajax

我的php代码如下

if ($data = $user->fetch()) 
{
    echo json_encode(array("output" => $data));
}
else
{
    echo json_encode(array("output" => $data));
}

我的javascript代码如下

success: function(response) 
{  
   alert(response);   //shows me [object Object] 

   alert(response[0].output);  // shows me nothing

   alert(response[0]);   //shows me undefined

   alert(JSON.stringify(response));   //shows me  {"output":false} 

    //I would like to get only true or false
}

从这篇文章(jQuery AJAX call returns [object Object])我知道[object Object]基本上是一个数组。

从这篇文章(jQuery Ajax: get specific object value)我得到了以下文字。

"您可以看到您的回复以[并以]结尾开头。所以你的回答是一个数组。

然后,在数组内部,您将获得对象(以{开头,以}结尾)。

因此,您的数据是一个数组,可以使用data [x](x是索引)访问,并且可以使用.dot表示法访问所选对象的每个成员:.word,.text等< / p>

所以在你的情况下,如果只有一个结果,你可以做数据[0] .word。&#34;

在这种情况下,我应该使用警告(response [0] .output)获得我的预期结果;

但我没有得到那个结果。谁能在这方面帮助我?

2 个答案:

答案 0 :(得分:1)

首先,请确保您已明确设置您将接收JSON:

dataType: 'JSON',

然后尝试通过它来访问它们:

success: function(response) {
    console.log(response.output);
    // kindly open your console browser to see contents
    // i think this is F12
    if(response.output) {
        // do something if true
    } else {
        // do something if false
    }
}

答案 1 :(得分:0)

你也可以尝试这个:

success: function(response) {
   // check your console
    console.log(response);

   //this two will give you same result
    console.log(response.output);
    console.log(response['output']);

 //either of this two
 var output = response.output; 
 var output = response['output']; 

  if(output){
   //code here
  }


}