2016-11-16 5 views
-2

PHP: lockState.phpHandhabung Ajax Erfolg Antwort

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); 

Ergebnis aus Abfrage

[{"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!); 

      } 
     }); 

ich total verloren bin, wo ich falsch bin bei der Verwendung der Antwort "Erfolg". Auch ich habe versucht, JSON.parse(response) und versuchte auf den Schlüssel zuzugreifen: Wert, aber immer noch gleich undefined. Bitte helfen Sie.

+1

, weil es ein Array ist, kein Objekt. – epascarello

+1

'Antwort' ist ein Array – adeneo

+0

In Situationen wie diesem können Sie' console.log (response) 'tun, um eine schöne Darstellung der Variablen in der Fehlerkonsole zu erhalten. –

Antwort

1

response[0].name wird Ihnen helfen.

+0

Danke, es hat gut funktioniert. –

1

Schauen Sie sich Ihr PHP an. Siehe $items = array();, wo Sie ein Array erstellen.

Sehen Sie sich die Daten an, die Sie erhalten. Siehe die [ und ] um ihn herum.

Sie haben ein Array, das ein Objekt enthält. Sie müssen den ersten Wert aus diesem Array lesen.

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

Die Art und Weise funktionieren würde versucht, wenn die Antwort war:

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

Aber Ihre Antwort ist:

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

Die Klammern bedeuten die Antwort ein Array ist, [], enthaltend ein Objekt, {};

Wie andere erwähnt haben; Die Art und Weise, wie Werte aus einem Array abgerufen werden, kann mit array_variable [0] erfolgen, um z. B. die erste auszuwählen.

In Ihrem Beispiel versuchen Sie dies:

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