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

AJAX Discussion :

[AJAX] Remplir input via liste déroulante en AJAX


Sujet :

AJAX

  1. #1
    Candidat au Club
    Homme Profil pro
    Etudiant MIAGE
    Inscrit en
    Avril 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Etudiant MIAGE

    Informations forums :
    Inscription : Avril 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut [AJAX] Remplir input via liste déroulante en AJAX
    Bonjour,
    Me voilà bloqué sur mon lieu de stage depuis 2 jours maintenant après avoir parcouru différent tutoriels de votre forum je n'arrive pas à me débloquer.
    Je vous explique grosso modo ce que je veux faire puis vous montre mon code.

    Alors, je veux une fois l'objet de ma liste déroulante choisi que ça remplisse automatiquement le formulaire en dessous.
    Dans mon exemple, je sélectionne un produit et il me remplis en dessous dans mon formulaire, le nom du produit, la masse volumique du produit ainsi que la température du produit.

    Alors, voici mes bouts de code :

    code createEssaiSimple.php (Contient la partie html)
    Code php : 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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <?php
    $req = $bdd->query("select * from produit;");
    $ligne = $req->fetch();
    echo' Nom du produit <select name="deroulanteProduit" id="deroulanteProduit" onchange="produit()">';
    while ($ligne) {
    ?>
        <option value="<?php echo $ligne['nomProduit'] . " - " . $ligne['masseVolumiqueProduit'] . " - " . $ligne['temperatureProduit']; ?>"><?php echo $ligne['nomProduit'] . " - " . $ligne['masseVolumiqueProduit'] . " - " . $ligne['temperatureProduit']; ?></option> 
    <?php
        $ligne = $req->fetch();
    }
    ?>
    </select>
    <br /><br />
    <div class="form-group">
        <label for="masse1Essai" class="col-sm-2 control-label">Masse du produit</label>
        <div class="col-sm-5">
            <input type="text" class="form-control" name="masse1Essai" id="masse1Essai" placeholder="1">
        </div>
    </div>
    <div class="form-group">
        <label for="nomProduit" class="col-sm-2 control-label">Nom du produit</label>
        <div class="col-sm-5">
            <input type="text" class="form-control" name="nomProduit" id="nomProduit">
        </div>
    </div>
    <div class="form-group">
        <label for="masseVolumiqueProduit" class="col-sm-2 control-label">Masse volumique du produit</label>
        <div class="col-sm-5">
            <input type="text" class="form-control" name="masseVolumiqueProduit" id="masseVolumiqueProduit">
        </div>
    </div>
    <div class="form-group">
        <label for="temperatureProduit1" class="col-sm-2 control-label">Température produit</label>
        <div class="col-sm-5">
            <input type="text" class="form-control" name="temperatureProduit1" id="MasseVolumiqueProduit2">
        </div>
    </div>

    code addEssaiSimple.php (contient le code PHP de la partie POST)
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
            include('../../../Compatibilite/includes/header.php');
     
    $req = $bdd->query("SELECT * FROM produit ;");
     
        $nomProduit = $_POST['nomProduit'];
        $masseVolumiqueProduit = $_POST['masseVolumiqueProduit'];
        $temperatureProduit1 = $_POST['temperatureProduit1'];
     
    ?>

    code remplissageProduit.js (code javascript que j'ai repris sur un tuto du forum )
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    function getXhr(){
        var xhr = null; 
        if(window.XMLHttpRequest) // Firefox et autres
    	xhr = new XMLHttpRequest(); 
        else if(window.ActiveXObject){ // Internet Explorer 
    	try {
    	    xhr = new ActiveXObject("Msxml2.XMLHTTP");
    	} catch (e) {
    	    xhr = new ActiveXObject("Microsoft.XMLHTTP");
    	}
        }
        else { // XMLHttpRequest non supporté par le navigateur 
    	alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    	xhr = false; 
        } 
        return xhr;
    }
    function produit(){
    	var xhr = getXhr();
    	// On défini ce qu'on va faire quand on aura la réponse
    	xhr.onreadystatechange = function(){
    		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    		if(xhr.readyState == 4 && xhr.status == 200){
    			leselect = xhr.responseText;
    			document.getElementById('deroulanteProduit').innerHTML = leselect;
    		}
    	}
     // a modifier ici
    	// Ici on va voir comment faire du post
    	xhr.open("POST","addEssaiSimple.php",true);
    	// ne pas oublier ça pour le post
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	// ne pas oublier de poster les arguments
    	// ici, le nom du produit est sélectionnée
    	sel = document.getElementById('nomProduit');
    	produit = sel.options[sel.selectedIndex].value;
    	xhr.send("nomProduit="+produit);
    }

    Voilà,
    Alors pour le moment rien ne fonctionne.. je suis débutant en javascript et complétement lourdé c'est pour ça que je me permet d'ouvrir un topic sur le forum.

    Merci
    Cordialement,
    Maxime

  2. #2
    Candidat au Club
    Homme Profil pro
    Etudiant MIAGE
    Inscrit en
    Avril 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Etudiant MIAGE

    Informations forums :
    Inscription : Avril 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Personne pour me débloquer ? Je suis vraiment dans la galère..

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Tu ne renvoies rien avec addEssaiSimple.php, donc tu ne risques pas de pouvoir utiliser ce que te renvoie la requête.

    http://ajax.developpez.com/cours/
    Comprendre les mécanismes d'AJAX
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Candidat au Club
    Homme Profil pro
    Etudiant MIAGE
    Inscrit en
    Avril 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Etudiant MIAGE

    Informations forums :
    Inscription : Avril 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Je vois pas du tout quoi mettre dedans pour renvoyer quelque chose..
    Je suis bloqué totalement, je tourne en rond..

    J'ai rajouté dans addEssaiSimple.php : Mais ça me renvois ça comme erreur : Undefined index et les noms de mes variables..

    Je sais qu'elles ne se remplissent pas mais je trouve pas comment faire pour..

    Merci

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $masseVolumiqueProduit = $_POST['masseVolumiqueProduit'];
    $temperatureProduit1 = $_POST['temperatureProduit1'];
    Tu les envoies quand ces paramètres ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Candidat au Club
    Homme Profil pro
    Etudiant MIAGE
    Inscrit en
    Avril 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Etudiant MIAGE

    Informations forums :
    Inscription : Avril 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Ici, dans mon code html ligne 24.
    Code php : 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
    $req = $bdd->query("select * from produit;");
    $ligne = $req->fetch();
    echo' Nom du produit <select name="deroulanteProduit" id="deroulanteProduit" onchange="produit()">';
    while ($ligne) {
    ?>
            <option value="<?php echo $ligne['nomProduit'] . " - " . $ligne['masseVolumiqueProduit'] . " - " . $ligne['temperatureProduit']; ?>"><?php echo $ligne['nomProduit'] . " - " . $ligne['masseVolumiqueProduit'] . " - " . $ligne['temperatureProduit']; ?></option> 
    <?php
        $ligne = $req->fetch();
    }
    ?>
    </select>
    <br /><br />
    <div class="form-group">
        <label for="masse1Essai" class="col-sm-2 control-label">Masse du produit</label>
        <div class="col-sm-5">
            <input type="text" class="form-control" name="masse1Essai" id="masse1Essai" placeholder="1">
        </div>
    </div>
    <div class="form-group">
        <label for="nomProduit" class="col-sm-2 control-label">Nom du produit</label>
        <div class="col-sm-5">
            <input type="text" class="form-control" name="nomProduit" id="nomProduit">
            <p><?php echo $nomProduit  ?></p>
        </div>
    </div>

    Je l'avais pas rajouté au moment ou j'ai posté.

    La j'ai testé uniquement avec le nom du produit j'ai pas encore faire pour la temperatureProduit et masseVolumiqueProduit


    Je suis vraiment perdu.. ça m'enerve..

  7. #7
    Candidat au Club
    Homme Profil pro
    Etudiant MIAGE
    Inscrit en
    Avril 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Etudiant MIAGE

    Informations forums :
    Inscription : Avril 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Je suis passé par du Jquery et ça fonctionne.
    merci de ton aide.

    A+

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

Discussions similaires

  1. Remplir input via deux listes déroulantes
    Par Sltcmi dans le forum AJAX
    Réponses: 2
    Dernier message: 01/02/2016, 13h28
  2. Réponses: 1
    Dernier message: 04/11/2014, 09h36
  3. [Plugin] [jqGrid] Remplir une liste déroulante par AJAX ?
    Par Odawin dans le forum jQuery
    Réponses: 3
    Dernier message: 10/03/2014, 20h33
  4. Réponses: 0
    Dernier message: 04/02/2011, 02h43
  5. [AJAX] Synchronisation de deux listes déroulantes
    Par Le Rebel dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/03/2006, 23h28

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