2012-04-20 5 views
1

J'ai ce code php qui transmet les résultats à une fonction jquery getJSON qui ne fonctionne pas correctement.php json pour charger jquery datagrid

voici mon code:

$data["total"]=mysql_num_rows($s); 
    while ($r = mysql_fetch_array($s)) 
    { 

     $ris_sql["utente"]=tv($r["utente"]); 
     $ris_sql["contratto"]=tv($r["contratto"]); 
     $ris_sql["login"]=tv($r["login"]); 
     $ris_sql["piattaforma"]=tv($r["piattaforma"]); 
     $ris_sql["azione"]=tv(format_valid($r["azione"])); 
     $ris_sql["data"]=tv($r["data"]); 
     $ris_sql["note"]=tv(str_replace("<br>","",$r["note"])); 
     $riga[]=$ris_sql; 
    } 
    $data["rows"]=json_encode($riga, JSON_FORCE_OBJECT); 
    echo json_encode($data); 

Si j'essaie d'utiliser Firebug je vois que mes rangées éléments en résultat JSON comme une chaîne à la place une série d'objets, ce qui ne va pas dans mon code ??

Répondre

0

Vous double-codifiez le JSON $riga. N'encodez pas séparément la partie $riga avant d'encoder le reste de la baie $data que vous renvoyez au navigateur.

// Instead of 
$data["rows"] = json_encode($riga, JSON_FORCE_OBJECT); 
// This double-encodes the contents of $data before outputting back to the browser or ajax call 
echo json_encode($data); 

// Just do: 
echo json_encode($data, JSON_FORCE_OBJECT); 

Si le format est pas ce que vous attendez, vous pouvez lancer la place $riga d'un tableau à un object puis encodez le tout sans JSON_FORCE_OBJECT.

// Cast $riga from an assoc array to an instance of stdClass 
$data['rows'] = (object)$riga; 
// And then JSON encode the whole $data 
echo json_encode($data); 
+0

Merci d'avoir répondu Michael! – haltman

+0

@haltman N'oubliez pas d'accepter la réponse si cela vous convient –