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

JavaScript Discussion :

poster le nom au lieu du id menu deroulant ajax/php


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de monlou
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Par défaut poster le nom au lieu du id menu deroulant ajax/php
    Bonjour,

    j'ai un soucis avec mes listes déroulantes ajax/php, en fait ca fonctionne mais j'aimerais plutot poster le nom dans la base au lieu du id.

    le noms des villes s'affichent dans les menus mais quand je veux poster les choix sélectionnés, c'est le iD qui se postent et pas les noms

    j'ai essayer de modifier le script Ajax et Php de plusieurs facons afin de pouvoir poster avec INSERT les noms des villes et provinces mais je n'y arrive pas.

    Si quelqu'un pourait voir le probleme--- merci!

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <script type='tex/javascript'>
     
    			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;
    			}
     
    			/**
    			* Méthode qui sera appelée sur le click du bouton
    			*/
    			function go(){
    				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;
    						// On se sert de innerHTML pour rajouter les options a la liste
    						document.getElementById('villes').innerHTML = leselect;
     
    					}
    				}
     
    				// Ici on va voir comment faire du post
    				xhr.open("POST","ajaxVilles.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, l'id de la province
    				sel = document.getElementById('provinces');
    				ProvinceID = sel.options[sel.selectedIndex].value;
    				xhr.send("province_id="+ProvinceID);
    			}
     
    </script>
    voici mes menus

    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
    <select name='provinces' id='provinces' onchange='go()'>
    					<option value='-1'>Choisir</option>
    					<?php
    						mysql_connect("localhost","root","");
    						mysql_select_db("trajetel");
    						$res = mysql_query("SELECT * FROM provinces ORDER BY nom");
    						while($row = mysql_fetch_assoc($res)){
    							echo "<option value='".$row["id"]."'>".$row["nom"]."</option>";
    						}
    					?>
    	</select>  
      <span class="selectRequiredMsg">Sélectionnez un élément.</span></span></p>
     <p><span id="spryselect5">   Choisissez une ville de départ  :   
     
    				<div id='villes' style='display:inline'>
    				<select name='villes' id="villes">
    					<option value='-1'>Choisir une ville : </option>
    				</select>
    				</div>
    et enfin ajaxVilles.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    	echo "<select name='villes'>";
    	if(isset($_POST["province_id"] )){
    		mysql_connect("localhost","root","");
    		mysql_select_db("trajetel");
    		$res = mysql_query("SELECT id,nom FROM villes 
    			WHERE province_id=".$_POST["province_id"]." ORDER BY nom");
    		while($row = mysql_fetch_assoc($res)){
    			echo "<option value='".$row["id"]."'>".$row["nom"]."</option>";
    		}
    	}
    	echo "</select>";
    ?>

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    un id doit être unique sur la page tu as les id et les select qui ont le même id !!

    si je les mets cote à cote ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<option value='".$row["id"]."'>".$row["nom"]."</option>";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ProvinceID = sel.options[sel.selectedIndex].value;
    tu envoies le value ...
    pour envoyer le contenu visible de la balise option :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ProvinceID = sel.options[sel.selectedIndex].innerHMLT;
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre éclairé Avatar de monlou
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Par défaut
    merci pour ta réponse mais je comprends pas tres bien ce que tu veux dire ici avec tes explications:

    un id doit être unique sur la page tu as les id et les select qui ont le même id !!

    si je les mets cote à cote ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<option value='".$row["id"]."'>".$row["nom"]."</option>";
    le id du selct, ne provient-il pas de la table? si je le change ca plante!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ProvinceID = sel.options[sel.selectedIndex].value;
    le provinceID ne provient-il pas de la valeur du select? si je le change ca plante!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ProvinceID = sel.options[sel.selectedIndex].innerHMLT;

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    forcément si j'ecris n'importe quoi et que tu recopie les âneries ...

    Dasn ton code tu récupères le value de l'option...
    alors soit tu conserve ton code de recupération mais à ce moment là il faudrait mettre le bon truc dans value: comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<option value='".$row["nom"]."'>".$row["nom"]."</option>";

    soit au lieu de recupères le value tu recupères (et c'est l'a que j'ai écrit une grosse c...ie le inner H T M L
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ProvinceID = sel.options[sel.selectedIndex].innerHTML;
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre éclairé Avatar de monlou
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Par défaut
    merci pour ta réponse mais ca ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<option value='".$row["nom"]."'>".$row["nom"]."</option>";
    ceci je l'avais deja essayer, ca fait planter le menu villes qui ne répond pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ProvinceID = sel.options[sel.selectedIndex].innerHTML;
    je viens de l'essayer aussi et meme résultat ca fait planter le menu select villes qui ne répond pas

    ni meme soit l'un ou l'autre et ni meme ni l'un et l'autre

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    tu ne nous montres pas assez de code, l'erreur doit se trouver ailleurs ..
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

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

Discussions similaires

  1. Affichage du nom au lieu de l'ID
    Par mplcg dans le forum Langage SQL
    Réponses: 2
    Dernier message: 25/05/2007, 17h29
  2. debutant : affiche liste nom au lieu de liste Id
    Par energies dans le forum Access
    Réponses: 10
    Dernier message: 15/09/2006, 12h34
  3. debutant : affiche liste nom au lieu de liste Id
    Par regis94 dans le forum Access
    Réponses: 6
    Dernier message: 17/08/2006, 13h49
  4. lister les noms de dossier dans un menu déroulant
    Par WeDgEMasTeR dans le forum Langage
    Réponses: 9
    Dernier message: 01/04/2006, 01h53
  5. MDI Application et nom des fenêtres dans le menu
    Par Captain_JS dans le forum C++Builder
    Réponses: 3
    Dernier message: 11/08/2005, 08h26

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