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

PHP & Base de données Discussion :

Erreur recuperation donnée dans variable pour AJAX [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2018
    Messages : 25
    Par défaut Erreur recuperation donnée dans variable pour AJAX
    Bonjour à tous ,

    Je rencontre un soucis concernant une requête SQL avec PHP . Je travaille avec jQuery pour la partie script . Voici mes codes :

    Html:

    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
    22
    23
    24
     
    <label for="elevesValidatActi">Sélectionner l'Eleve</label><br />
                <select class="custom-select custom-select-md lg-3" name="elevesValidatActi" id="elevesValidatActi">
                <?php
     
    $reponse = $bdd->query('SELECT * FROM eleves ORDER BY eleveCycle');
     
    while ($donnees = $reponse->fetch())
    {
    ?>
               <option value="<?php echo $donnees['eleveNom']?>"> <?php echo $donnees['eleveNom'] . "  " . $donnees['elevePrenom'] . " - " . "Cycle " . $donnees['eleveCycle'];?>
     
               </option>
    <?php
    };
     
    ?>
    </select><br /></div>
    	<div class="form">
    			<label for="activite">Sélectionner l'Activité</label><br />
                <select class="showActivite custom-select custom-select-md lg-3" name="activite" id="activite">
                  <option value="0" selected="selected">Selectionner l'activité</option>
                </select>
    <br /></div>
    Pour la partie Script :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $('#elevesValidatActi').change(function(){
         var eleves=$(this).val();
         $.ajax({
              url:"showElevesActi.php",
              dataType:"html",
              method:"GET",
              data:{eleves:eleves},
              sucess:function(data){
                   $('.showActivite').html(data);
              }
         });
    });
    Et la partie PHP :

    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
    22
     
    <?php
    include 'bsd.php';
    if (isset($_GET['eleves']))
    {
    	//Recherche du Cycle par rapport au nom de l'élève
        $reponse = $bdd->query("SELECT eleveCycle FROM eleves WHERE eleveNom = $_GET['eleves']");
        $cycle = $reponse->fetch();
     
        //Requete préparée pour trouver une activité du niveau de l'eleve
        $sql2 = "SELECT * FROM activite WHERE activiteLevel = ?";
        $req2 = $bdd->prepare($sql2);
        $req2->execute(array($cycle));
        $result='';
        //Boucle pour menu Select
        while($data = $req2->fetch())
        {
            $result .='<option value="'.htmlspecialchars($data["activiteNom"]).'">'.htmlspecialchars($data["activiteNom"]).'</option>';
        }
        $req2->closeCursor();
        echo $result;
    }
    A l'heure actuelle , je n'ai pas d'alerte dans la console et je vois bien l'envoi de la partie script car je retrouve la variable dans Network .
    Seulement aucun retour et je pense que c'est ma manière de définir ma variable $cycle .
    Pouvez-vous m'aidez à comprendre mon erreur ?

    Merci d'avance !

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Effectivement, la requête de cycle est moche. Tu devrais utiliser une requête préparée comme tu le fais juste en-dessous pour l'activité. Et si tu veux récupérer juste la valeur de la 1ere colonne dans la 1ere ligne de résultat, je te conseille d'utiliser fetchColumn :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql1 = "SELECT eleveCycle FROM eleves WHERE eleveNom = ?";
    $req1 = $bdd->prepare($sql1);
    $req1->execute([$_GET['eleves']]);
    $cycle = $req1->fetchColumn(0);
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2018
    Messages : 25
    Par défaut
    Bonjour et merci pour ta réponse ,

    J'ai essayé avec ta requête préparée effectivement c'est plus agréable à l'oeil . Par contre le retour ne fonctionne pas .
    La requête préparée doit me permettre de récupérer un nombre associé à un élève .
    Est ce que le fetch me permet de prendre juste un nombre entier pour l'insérer dans une variable ( la variable $cycle )?

    J'ai déjà utilisé un équivalent de la requête préparée suivante mais je me suis planté quelque part mais je ne trouve pas ou ...
    Je relink la requete en PHP

    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
    22
    23
    24
    25
    26
     
    <?php
    include 'bsd.php';
    if (isset($_GET['eleves']))
    {
    	//Recherche du Cycle par rapport au nom de l'élève
        $sql1 = 'SELECT eleveCycle FROM eleves WHERE eleveNom = ?';
        $req1 = $bdd->prepare($sql1);
        $req1->execute(array($_GET['eleves']));
        $cycle = $req1->fetchColumn();
        $req1->closeCursor();
     
        //Requete préparée pour trouver une activité du niveau de l'eleve
        $sql2 = 'SELECT * FROM activite WHERE activiteLevel = ?';
        $req2 = $bdd->prepare($sql2);
        $req2->execute(array($cycle));
        $result='';
        //Boucle pour menu Select
        while($data = $req2->fetch())
        {
            $result .='<option value="'.htmlspecialchars($data["activiteNom"]).'">'.htmlspecialchars($data["activiteNom"]).'</option>';
        }
        $req2->closeCursor();
        echo $result;
    }
    ?>
    Je ne comprends pas ou j'ai fait une erreur ...
    Quelqu'un peut-il m'aider ?
    Merci d'avance

  4. #4
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2018
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2018
    Messages : 25
    Par défaut
    J'ai trouvé mon erreur , j'ai oublié un C à success dans le jQuery ... Merci en tout cas pour l'info de fetchColumn !

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

Discussions similaires

  1. recuperer dossier dans outlook pour nouveau PC
    Par jacfld49 dans le forum Outlook
    Réponses: 1
    Dernier message: 15/12/2008, 23h44
  2. [AJAX] recuperer valeurs dans Div après Ajax.Updater
    Par Alexdezark dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/11/2008, 22h25
  3. Recuperer données dans un combobox
    Par aoking dans le forum Bases de données
    Réponses: 4
    Dernier message: 08/04/2007, 11h56
  4. [Access 2003]Erreur modification données dans base distante
    Par Julio_del_pueblo dans le forum Access
    Réponses: 2
    Dernier message: 22/06/2006, 14h22
  5. Recuperation donnée dans tierce application
    Par petitcoucou31 dans le forum Langage
    Réponses: 3
    Dernier message: 10/02/2006, 12h12

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