IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Récupération des ID avec JS [AJAX]


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2013
    Messages : 10
    Par défaut Récupération des ID avec JS
    Bonjour à tous,
    J'aimerais accéder avec JavaScript à un ensemble des ID récupérés dynamiquement avec AJAX. l'action semble impossible vu que les données ne sont pas affichées dans le corps de la page(<body><div>) mais seulement dans la console.
    Ceci mon code php ( liste.php ) qui sera importé dynamiquement avec AJAX :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    echo '  <tr id="'.$row['nom'].'"><td id="'.$row['prenom'].' ">
    	<div class="left"><div class="icon"> ℹ </div></div>
            <div class="right"><h2> '.$row['nom'].'</h2>
    		<p> '.$row['prenom'].' </p>
            </div></td>
    </tr> ';

    ma page index où je voudrais accéder aux ID en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     function refreshChat(){ 
        $.ajax({
            type:"GET",
            url:"liste.php",
            data:"html",
    	success:function(msg){
                var $listeAtt = $('#att >*');
                if ($listeAtt.length == 0){
                    $('#att').append(msg);
                    // console.log(msg);
                }
            }
        }
    )};
    var timer=setInterval("refreshChat()", 5000);
    J'ai pu afficher les données reçues dans la page principale (graphiquement ) mais aucun moyen d'accéder aux ID de chaque ligne.
    Avez vous des propositions ?

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2012
    Messages : 26
    Par défaut
    Hello,

    chez moi un "echo" ne place rien dans la console mais dans le flux de ma page.
    S'il est affiché à l'écran c'est qu'il y est, même si firebug ou Chrome Dev tools ne l'insèrent pas dans la source initialement chargée.

    Qu'as tu essayé pour en conclure si rapidement que c'est impossible ? parce que là y'a un simple appel Ajax sans chercher à accéder au contenu généré

    ps: utiliser les noms et prénoms comme id est une idée plus que farfelue, surtout sans traitement préalable car il subsiste accents, espaces

  3. #3
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    C'est une très mauvaise idée que de procéder ainsi.

    il serait beaucoup plus simple et efficace de ne retourner que les données.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo utf8_encode(json_encode($row));
    dans ton ajax tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function refreshChat(){ 
        $.ajax({
            type:"GET",
            url:"liste.php",
            data:"html",
    	success:function(msg){
                var raw = JSON.parce(msg);
                //ici tu as tes données raw.nom, raw.prenom
                //tu peux donc ajouter le html que tu veux dans ta page
                //et traiter tes données comme tu veux.
                //pas besoin d'en passer par des ids
            }
        }
    )};
    var timer=setInterval("refreshChat()", 5000);

    si tu traite une liste de personnes
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $result = mysql_query("SELECT .... FROM mytable");
    $response = array(
      'count' => mysql_num_rows($result),
      'list' => array()
    );
     
    while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
        $response['list'].push($row);  
    }
    echo utf8_encode(json_encode($response));
    et dans js
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    function refreshChat(){ 
        $.ajax({
            type:"GET",
            url:"liste.php",
            data:"html",
    	success:function(msg){
                var response = JSON.parce(msg);
                if (0 == response.count) {
                  //pas d'élément dans la liste
                } else {
                  for(var raw in response.list) {
                    //ici tu as tes données raw.nom, raw.prenom
                    //tu peux donc ajouter le html que tu veux dans ta page
                    //et traiter tes données comme tu veux.
                    //pas besoin d'en passer par des ids
                  }
                }
            }
        }
    )};
    var timer=setInterval("refreshChat()", 5000);
    enfin attention losque tu utilise des IDS il doivent être unique dans la page et un nom de personne peut ne pas être unique (homonymes)

    A+JYT

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2013
    Messages : 10
    Par défaut
    Merci @sekaijin
    Je vais implémenter ta solution envisagée sinon, je cherchais tjr à exploiter les données JSON reçues avec AJAX, le pb c'est que chaque 5 seconde, AJAX doit appeler le script php pour mettre à jour la liste utilisée dans le corps de la page et du coup JSON n'était pas utile. il ne s'agit pas de ma dernière décision, peut être j'avais une erreur quelque part. Bref, je vais essayer ta méthode et te mettre au courant, merci encore

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2013
    Messages : 10
    Par défaut
    La méthode est super efficace, Merci infiniment. mais j'ai eu le même souci qu'avant. ça marché avec eval au lieu de JSON.parse mais j'ai eu aucun résulta (undifined ) données absentes et c'est logique parque mon script php semble incorrect. j'aimerais avoir cette structure : {"nom":"USER ","prenom":"FREE"} avec JSON depuis PHP afin que je puisse accéder à cette chaîne depuis JavaScript

  6. #6
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $row = array(
      "nom" => "USER ",
      "prenom" => "FREE"
    );
    echo utf8_encode(json_encode($row));
    ce qui donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"nom":"USER ","prenom":"FREE"}
    A+JYT

  7. #7
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2013
    Messages : 10
    Par défaut
    ça fonctionne nickel Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mauvaise récupération des valeurs avec $_POST
    Par Trebor_ dans le forum Langage
    Réponses: 2
    Dernier message: 02/03/2008, 10h33
  2. Réponses: 1
    Dernier message: 25/06/2007, 21h10
  3. récupération des paramètres avec javascript
    Par pcdj dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/07/2006, 09h45
  4. Récupération des paramètres avec une procedure stockée
    Par samlerouge dans le forum Bases de données
    Réponses: 2
    Dernier message: 31/03/2004, 22h00
  5. Réponses: 13
    Dernier message: 20/03/2003, 08h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo