2016-11-16 171 views
-2

PHP:lockState.php處理AJAX成功響應

require '../dbconn.php'; 
$query = mysql_query("select id, lockState,name from register_db where Id=1"); 
$items = array(); 
while ($row = mysql_fetch_object($query)) { 
    array_push($items, $row); 
} 
echo json_encode($items); 

從查詢結果

[{"id":"1","lockState":"No","name":"Local Application"}] 

的index.php

$.ajax({ 
      type: "POST", 
      url: "feed/lockState.php", 
      data: ({id: 1}), 
      cache: false, 
      dataType:"json", 
      success: function (response) { 
       alert(JSON.stringify(response)); // [{"id":"1","lockState":"No","name":"Local Application"}] 
       alert(response.name); //***undefined*** 
        if(response.name=='Local Application'){ 
        callMyFunction(response.name); 
        } 
      }, 
      error: function() { 
       alert("Oops..!! Something wrong!); 

      } 
     }); 

我完全失去了在那裏我做錯了在使用'成功'的迴應。即使我嘗試登錄JSON.parse(response)並嘗試訪問key:值,但仍然是undefined。請幫忙。

+1

,因爲它是一個數組,而不是一個對象。 – epascarello

+1

'response'是一個數組 – adeneo

+0

在這種情況下,你可以通過'console.log(response)'在錯誤控制檯中獲得一個很好的變量表示。 –

回答

1

response[0].name會幫助你。

+0

謝謝,它的工作很好。 –

1

看看你的PHP。請參閱$items = array();您創建數組的位置。

看看你得到的數據。請參閱其周圍的[]。您有一個數組包含一個對象。您需要讀取該數組中的第一個值。

var object = response[0]; 
var name = object.name; 
0

你嘗試過將工作,如果響應的樣子:

{"id":"1","lockState":"No","name":"Local Application"} 

但你的反應是:

*[*{"id":"1","lockState":"No","name":"Local Application"}*]* 

的括號表示響應是一個數組,[],含一個東西, {};

正如其他人所說的;從數組中檢索值的方法可以通過使用array_variable [0]來完成,例如選擇第一個。

在您的例子試試這個:

alert(response[0].name); //***undefined***