2012-10-30 5 views
-1

les deux peuvent être divisés en une chaîne JSON séparée par des tableaux séparés retournés par le script php? mon code JSComment analyser le tableau JSON?

function GetData(id){ 
    $.ajax({ 
     url: 'list.php', 
     data: 'id=' + id, 
     type: 'POST', 
     success: function(data){ 
      alert(data) 
      console.log(data) 
     } 
    }) 
} 

mon list.php

<?php 
$id = $_POST['id']; 
$connect = mysql_connect("localhost", "admin", "118326") or die(mysql_errno()); 
$db = mysql_select_db("flabers", $connect) or die(mysql_error()); 
$result = mysql_query("SELECT * FROM list WHERE id = '$id'") or die(mysql_error()); 
$array = mysql_fetch_assoc($result) or die(mysql_errno()); 
echo json_encode($array); 
?> 

retour chaîne JSON

{"id":"88","country":"Korea, Japan, USA","brand":"Samsung, Sony, HTC"} 

comment obtenir les deux tableaux pays et la marque?

+2

'data.country'? Ce n'est pas un tableau cependant, juste une chaîne. – deceze

+0

Vous utilisez [une API de base de données obsolète] (http://stackoverflow.com/q/12859942/19068) et vous devez utiliser un [remplacement moderne] (http://php.net/manual/fr/mysqlinfo.api). choose.php). Vous vous exposez également à [attaques par injection SQL] (http://bobby-tables.com/) qu'une API moderne rendrait plus facile de [défendre] (http://stackoverflow.com/questions/60174/best- way-to-prevent-sql-injection-in-php). – Quentin

+0

Je sais, je ne pouvais tout simplement pas créer un problème avec le tableau, car cela a déjà été (mais il ne s'applique pas au sujet) – Dima

Répondre

-1

Parse json de la manière ci-dessous.

//var obj = JSON.parse(jsonstring); //javascript way 

var obj = jQuery.parseJSON(jsonstring); //jquery way 

alert(obj.country + " : " + obj.brand); 
+0

C'est un très long chemin qui contourne le pollyfill intégré dans jQuery. C'est une très mauvaise approche du problème. – Quentin

+0

@Quentin, j'ai ajouté la méthode jquery après avoir lu ton commentaire .. –

+0

Oh mec, grand merci! ssory pour mon anglais. – Dima

1

utilisateur dataType:'json'

$.ajax({ 
    url: 'list.php', 
    data: 'id=' + id, 
    contentType: 'application/json', 
    type: 'POST', 
    dataType: 'json', 
    success: function(data){ 
     alert(data) 
     console.log(data) //access it like data.id, data.country etc 
    } 
}) 
+0

C'est une solution pour quand le serveur a un mauvais type de contenu. Le problème devrait être résolu en amont si possible. – Quentin

+0

alert (data.country) renvoie 'undefined' – Dima

0

Le PHP doit informer le client qu'il envoie JSON et non HTML (ce qui fait par défaut).

header('Content-Type: application/json'); 

jQuery l'analysera ensuite automatiquement dans un objet JavaScript.

Questions connexes