Je n'ai jamais utilisé JSON auparavant et j'essaie d'utiliser le javascript suivant: http://jqueryselectcombo.googlecode.com/files/jquery.selectCombo1.2.6.js
Il nécessite une sortie JSON au format suivant:
[{oV: 'myfirstvalue', oT: 'myfirsttext'},
{oV: 'mysecondvalue', oT: 'mysecondtext'}]
Pourriez-vous me guider vers un exemple sur la façon de générer une sortie JSON comme ci-dessus, en utilisant PHP?
Le moyen le plus simple serait probablement de commencer par un tableau associatif des paires souhaitées:
$data = array("myfirstvalue" => "myfirsttext", "mysecondvalue" => "mysecondtext");
puis utilisez un foreach et une concaténation de chaîne:
$jsontext = "[";
foreach($data as $key => $value) {
$jsontext .= "{oV: '".addslashes($key)."', oT: '".addslashes($value)."'},";
}
$jsontext = substr_replace($jsontext, '', -1); // to get rid of extra comma
$jsontext .= "]";
Ou, si vous possédez une version récente de PHP, vous pouvez utiliser les fonctions de codage JSON intégrées - faites attention aux données que vous leur transmettez pour les faire correspondre au format attendu.
Une fois que vous avez vos données PHP, vous pouvez utiliser le json_encode
fonction; il est fourni avec PHP depuis PHP 5.2
Dans votre cas, votre chaîne JSON représente:
En PHP, cela créerait la structure que vous représentez:
$data = array(
(object)array(
'oV' => 'myfirstvalue',
'oT' => 'myfirsttext',
),
(object)array(
'oV' => 'mysecondvalue',
'oT' => 'mysecondtext',
),
);
var_dump($data);
Le var_dump
vous procure:
array
0 =>
object(stdClass)[1]
public 'oV' => string 'myfirstvalue' (length=12)
public 'oT' => string 'myfirsttext' (length=11)
1 =>
object(stdClass)[2]
public 'oV' => string 'mysecondvalue' (length=13)
public 'oT' => string 'mysecondtext' (length=12)
Et, encodant en JSON:
$json = json_encode($data);
echo $json;
Vous recevez :
[{"oV":"myfirstvalue","oT":"myfirsttext"},{"oV":"mysecondvalue","oT":"mysecondtext"}]
BTW: Ce dont je me souviens, je dirais que votre chaîne JSON n'est pas valide. Données JSON: il devrait y avoir des guillemets doubles autour de la chaîne, y compris les noms des propriétés des objets.
Voir http://www.json.org/ pour la grammaire.
J'espère que cela t'aides :-)
Cela devrait être utile: Génération de JSON
C'est le code php pour générer le format json
<?php
$catId = $_GET['catId'];
$catId = $_POST['catId'];
$conn = mysqli_connect("localhost","root","","DBName");
if(!$conn)
{
trigger_error('Could not Connect' .mysqli_connect_error());
}
$sql = "SELECT * FROM TableName";
$result = mysqli_query($conn, $sql);
$array = array();
while($row=mysqli_fetch_assoc($result))
{
$array[] = $row;
}
echo'{"ProductsData":'.json_encode($array).'}'; //Here ProductsData is just a simple String u can write anything instead
mysqli_close('$conn');
?>
Vous pouvez utiliser le stdClass, ajouter les propriétés et json_encode l'objet .
$object = new stdClass();
$object->first_property = 1;
$object->second_property = 2;
echo '<pre>';var_dump( json_encode($object) , $object );die;
Voilà!
string(40) "{"first_property":1,"second_property":2}"
object(stdClass)#43 (2) {
["first_property"]=>
int(1)
["second_property"]=>
int(2)
}