5 votes

Obtenir JSON avec jQuery

Lorsque j'essaie d'afficher les données avec getJSON, rien ne se passe, $('#child-left-container-2') devrait afficher les données du fichier php. Où ai-je fait une erreur?... Ci-dessous est un bref exemple de mon code.

fichier php

while($row = mysql_fetch_assoc($query)) {

//code

    $array[] = "$details1";

            }

            echo json_encode($array);

jquery

$(function() {
    $('.next_button').click(function() {

var id =  $('#container').find('.graphic-blank:visible').siblings().attr('id');

        $.getJSON('fetchstack.php?id='+id,function(data) {

            $('#child-left-container-2').html(''); //clear div

            $.each(data,function(i,result) {
                $('#child-left-container-2').append(result);
            });
        });

          });
});

0voto

aki Points 453

Eh bien, c'est ma solution et cela fonctionne parfaitement :

PHP :

query("set names utf8");
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $dbh->query($sql);  
$json_export = $stmt->fetchAll(PDO::FETCH_OBJ);
$dbh = null;

    // retourner les données au format JSON
echo '{"items":'. json_encode($json_export) .'}'; 
} catch(PDOException $e) {

    // retourner une erreur
echo '{"error":{"text":'. $e->getMessage() .'}}'; 
}

?>

LISTVIEW HTML :

       //ma balise de liste HTML

JAVASCRIPT

  //déclencher le script sur la page affichée
$('#myPage').live('pageshow',function (event) {
       //obtenir nos données JSON
    $.getJSON('chemin_vers_votre_fichier_json_php_generateur_déclaré_plus_haut',function(data){
          //ajouter nos données JSON à une variable
       var json_entries = data.items;
                //pour chaque donnée JSON, l'ajouter à notre liste en tant qu'élément
       $.each(json_entries,function(index,entry){
           $('#myList').append('' + entry.title + '');
             //en supposant que nous avons un champ nommé "title" dans les données JSON
       });
             //rafraîchir la liste pour le chargement du style
       $('#myList').listview('refresh');
    });
});

C'est ainsi que vous peuplez une liste sur jQuery Mobile avec des données JSON générées par un fichier php. Vous pouvez adapter ce type de script à chaque interpréteur JSON dans votre code jQuery, même avec des paramètres (id, catégorie, etc) !

J'espère que cela aidera d'une manière ou d'une autre !

0voto

djleop Points 604

Essayez de mettre ceci juste avant echo json_encode($array);. Éventuellement, ajoutez un appel à exit pour éviter un affichage supplémentaire.

header('Content-type:application/json;charset=utf-8');
echo json_encode($array);
exit();

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X