[jQuery / JSON /PHP] Effectuer une requete et envoyer le resultat en JSON
Bonjour :)
Je viens ici afin d'avoir quelques éclaircissements sur mon problème (logique, sinon pourquoi poster ? :P ).
Je vous le détaille.
J'ai d'un côté, un script client quasi-full ajax. Il s'agit d'un système d'upload de photos, basé sur Uploadify.
J'utilise jQuery afin de rajouter des effets graphiques, rendre la navigation plus plaisante...
Voici ce que fait le script client :
- On saisie le(s) photo(s) à envoyer sur le serveur (on peut faire du multiupload) ;
- Les photos sont uploadées, renommées (à l'aide de microtime + rand) ;
- En parallèle, on enregistre le nom orignal de la photo ainsi que diverses informations dans un BDD ;
- On affiche un formulaire pour saisir des tags, infos... pour chaque photo précédemment up (c'est ici que j'ai un soucis)
Revenons à l'étape 3.
Ma photo est uploadée, à la fois le fichier (dans une répertoire) et les infos (dans la BDD).
Je dois alors récupérer dans la BDD tout ce qui vient d'être enregistré. Je lance donc à la fin de l'upload un script PHP (form.php, à l'aide de jQuery.post() ) qui récupère tout ça.
Je dois ensuite envoyer le résultat à la page cliente (index.php) le résultat de cette récupération.
Pour ça, j'utilise JSON.
Voici mon form.php :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <?php
$handle = mysql_connect('localhost', 'root', '');
$db = mysql_select_db('galerie');
$request = "SELECT CONCAT('[',
GROUP_CONCAT(
CONCAT('{id:',id,''),
CONCAT(',nom:',nom,''),
CONCAT(',url:',url,'}')
),
']')
AS json
FROM media
WHERE session='".$_POST['session'];
$result = mysql_query($request);
//$tab = mysql_fetch_array($result);
mysql_close($handle);
echo json_encode($result);
?> |
Et la gestion côté client (je ne met que la partie concernée) :
Code:
1 2 3 4
| jQuery.post("form.php", { session: "<?php echo $session; ?>" },
function(data){
alert(data.id); // Test
}, "json"); |
Seulement, le alert() m'indique que data.id est indéfini.
Et si je ne met que data, j'obtiens false au lieu de la chaine JSON.
Quelqu'un saurait m'indiquer mon erreur ?
Merci d'avance ! ;)