11521 sujets

JavaScript, DOM et API Web HTML5

Voici mon code PHP qui encode un tableau $utilisateurs et une variable $totalUtilisateurs

$sql = "SELECT * FROM utilisateurs" ;
   $result = $conn->query($sql);      
   $totalUtilisateurs = $result->num_rows;
    $utilisateurs=array();
    if ($result->num_rows > 0) {
     $counter=0;
     while($row_rs= mysqli_fetch_assoc($result)) {
        $rows[] = array_map('utf8_encode', $row);
        $utilisateurs[$counter]['id'] = $row_rs['id'];
        $utilisateurs[$counter]['nom']=  utf8_encode($row_rs['nom']);
        $utilisateurs[$counter]['prenom']= $row_rs['prenom'];
        $utilisateurs[$counter]['age']= $row_rs['age'];
        $utilisateurs[$counter]['ville']= $row_rs['ville'];
        $counter++;
      }
   }
   echo json_encode(array('data'=>$utilisateurs,'$totalUtilisateurs'=>$totalUtilisateurs))


Lorsque je charge ce fichier php dans Chrome, j'obtiens la liste des utilisateurs avec l'id, le nom, le prénom, l'age et la ville. Voici le résultat affiché dans chrome
"{"data":[{"id":"1","nom":"Hochman","prenom":"Marcel","age":null,"ville":null},{"id":"3","nom":"Hochman","prenom":"Rebecca","age":null,"ville":null},{"id":"4","nom":"Blanc","prenom":"Danielle","age":null,"ville":null},{"id":"5","nom":"Hochman","prenom":"Charlotte","age":null,"ville":null},{"id":"6","nom":"Birden","prenom":"Arden","age":null,"ville":null},{"id":"7","nom":"Titi","prenom":"Toto","age":null,"ville":null}],"$totalUtilisateurs":6}

Jusqu'ici, tout va bien.
Maintenant, je veux récupérer ces variables et leur valeur dans Ajax et là, ça se gâte
.
jQuery(document).ready(function($){
   $.get('chargerUsers' , function(data){
      alert(data);
     alert(data.totalUsers);
       $.each(data.data, function(key, value)
        {
           alert(JSON.stringify(value);
       });
    });
});

L'écran de chrome reste désespérement vide.
Cela fait une semaine que je cherche la solution et j'ai passé des dizaines d'heures sur le web. Je suis toujours bloqué.
Merci de votre aide.
Frédéric Smiley smile
Modérateur
entre autres, mais l'url dans l'appel $.get semble douteux: 'chargerUsers'
c'est relatif et nécessite probablement de l'URL rewriting, est-ce le cas?

Le js comporte pas mal d'erreurs, consulter la console répondra probablement aux problématiques.

D'ailleurs pour faire du javascript il ne faut pas hésiter à user et abuser de la console: console.log(data) affichera les données de manières plus agréables que dans un alert();
je rejoins mes camarades au dessus.

echo json_encode(array('data'=>$utilisateurs,'$totalUtilisateurs'=>$totalUtilisateurs))

il faut rectifier cette ligne et enlever le dollars.
Modifié par JENCAL (30 Aug 2016 - 17:03)
Je sur-enchérie sur le $.get()

le $.get envoie une requête HTTP à une page donc ce que tu fais est faux.

 $.get('chargerUsers' , function(data){

on a l'impression que chargerUsers est une méthode alors que get attends une page. Pour rappel il est impossible d'appeler une function php dans du code jquery.
Modifié par JENCAL (30 Aug 2016 - 17:13)
kustolovic a écrit :
entre autres, mais l'url dans l'appel $.get semble douteux: 'chargerUsers'
c'est relatif et nécessite probablement de l'URL rewriting, est-ce le cas?

Le js comporte pas mal d'erreurs, consulter la console répondra probablement aux problématiques.

D'ailleurs pour faire du javascript il ne faut pas hésiter à user et abuser de la console: console.log(data) affichera les données de manières plus agréables que dans un alert();


.La console m'a sauvé la vie. Après en avoir usé et abusé, j'ai fini par debugger tout mon code.
C'est vraiment un grand plaisir de découvrir combien je peux faire de petites erreurs qui sont aussitôt repérées par la console.
Merci infiniment Smiley smile