Partage
  • Partager sur Facebook
  • Partager sur Twitter

Liste déroulante qui ne se rafraichit pas

mais exécution de la requête liée

Sujet résolu
    6 mai 2010 à 14:43:12

    Bonjour, oui oui c'est encore moi :p

    Juste pour savoir, je vous explique quand meme :

    J'ai une liste déroulante simple qui va chercher une liste de nom dans une bdd, jusque la pas de souci donc!
    J'ai un champ texte à côté ainsi qu'un bouton "Ajout".
    Lorsque l'on saisie un texte et que l'on clique sur le bouton ajout, j'aimerais que la liste soit rafraichi avec la nouvelle liste.
    Cependant,elle ne se rafraichit pas mais l'ajout à bien été fait puisque quand j'appuye sur F5 la nouvelle liste est bien la.

    J'aimerais savoir si c'est parceque j'ai déjà quelque chose au préalable dans ma bdd que la liste ne veux pas se rafraichir?

    Merci d'avance les coupains :=)
    • Partager sur Facebook
    • Partager sur Twitter
      6 mai 2010 à 16:55:47

      Je consulte ma boule de cristal pour deviner ton code, et je te réponds tout de suite après. ;)
      • Partager sur Facebook
      • Partager sur Twitter
        7 mai 2010 à 7:02:12

        J'ai posé une question qui n'a nullement besoin de code. J'aimerais savoir si c'est possible. Si ca l'est, c'est que j'ai fait une erreur quelque part et dans ce cas, je me débrouillerai. Sinon ce n'est pas la peine que je me creuse la tête.
        Merci
        • Partager sur Facebook
        • Partager sur Twitter
          7 mai 2010 à 9:28:07

          Bonjour gto,
          Je pense que tu peux essayer de rester agréable, la réponse de Golmote n'était que de bonne volonté ;)
          Pour te répondre, il est tout à fait possible de modifier ton élément liste , récupérer depuis le serveur ta nouvelle liste.
          Après tout dépend de comment tu vas t'y prendre mais non tu vas pas droit dans un mur :)

          DiDi
          • Partager sur Facebook
          • Partager sur Twitter
            7 mai 2010 à 9:35:32

            Désolé, je ne pensais pas que ma réponse allait passer pour désagréable ce n'était pas l'intention Oo
            J'aimerais juste éviter d'assomer les gens de code.
            Merci pour ta réponse, je vais y travailler.
            • Partager sur Facebook
            • Partager sur Twitter
              7 mai 2010 à 9:45:15

              Ce n'est peut être que mon interprétation ^^
              Après je pense pas que tu risques d'assommer qui que se soit, c'est un forum d'entraide, donc si tu as besoin par la suite, postes ton code si tu bouchonnes quelque part ;)

              Bon courage
              • Partager sur Facebook
              • Partager sur Twitter
                7 mai 2010 à 13:04:47

                C'est en voyant ton code qu'on pourra comprendre pourquoi l'ajout dans la liste n'est pas immédiat.
                • Partager sur Facebook
                • Partager sur Twitter
                  10 mai 2010 à 7:13:21

                  Voici les trois parties de mon code :

                  Partie JS :

                  var xhr = null; 
                  	 
                  			function getXhr(){
                  				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; 
                  				} 
                  			}
                  			function go(){
                  				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('NomFourn').value = leselect;
                  					}
                  				}
                   
                  				// Ici on va voir comment faire du post
                  				xhr.open("POST","AjaxFournisseur.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 l'utilisateur
                  				idAjout = document.getElementById('Ajout').value;
                  				//idAjout = sel.options[sel.selectedIndex].value;
                  				xhr.send("idAjout="+idAjout);
                  				
                  			}
                  



                  Partie php qui traite la réponse :

                  <?php
                  $Ajout=$_POST["idAjout"];
                  print($Ajout);
                  	echo("<SELECT name=\"Matricule\" id=\"NomFourn\" >");
                  	if(isset($_POST["idAjout"]))
                  	{
                  		$Ajout=$_POST["idAjout"];
                  		
                  		$Id = odbc_connect ( "reseau" ,  "reseau", "clf" ) ;
                  		$Req=" INSERT INTO Fournisseur(Nom_Fourn) VALUES('$Ajout')";
                  		odbc_do($Id, $Req ) ;
                  		$Req2=" SELECT * from Fournisseur ";
                  		$result2 =odbc_do($Id, $Req2 ) ;
                  		print($Req2);
                  		while(odbc_fetch_row($result2))
                  		{
                  				$NomFourn=trim(odbc_result($result2, 1));
                  				echo "<option value=\"$NomFourn\">\"$NomFourn\"</option>";
                  												
                  		}
                  
                  		echo("</select>");
                  	}
                  	else
                  	{
                  	
                  		echo("impossssiiiiiiiiiiibbbbbbbbbbbbleeee");
                  	}
                  
                  	
                  ?>
                  




                  Enfin ma partie php associé à mon formulaire :

                  echo ("<TR class=\"Clair\">");
                  				echo ("<TR class=\"Clair\">");
                  				echo ( "<TD class=\"Libelle\">Nom fournisseur</TD>" ) ;
                        		echo ( "<TD><SELECT name=\"NomFourn\" id=\"NomFourn\">");
                  				echo("<OPTION> $NomFourn");
                  					$Req4=" SELECT Nom_Fourn FROM Fournisseur WHERE Nom_Fourn <> ''";
                  					$result4 =odbc_do($Id, $Req4 ) ;
                  						while(odbc_fetch_row($result4))
                  					{
                  							$NomFourn=odbc_result($result4, 1);
                  							sqlchaineLire($Nom_Fourn);
                  							echo("<OPTION> $NomFourn");
                  					}
                        	echo("</SELECT>");
                  		echo("<INPUT type=\"text\" name=\"Ajout\" id=\"Ajout\"  size=\"20\">");
                  		echo("<input type=\"button\" value=\"Ajout\" onClick=\"go()\"></TD>");
                  


                  Je vous remercie d'avance si vous voyez d'ou viens le souci. Promis c'est la dernière fois que je poste sur des listes déroulantes ^^


                  Edit: Pour ceux qui passeront par içi une jour, j'ai résolu mon affaire aen rajoutant directement les lignes de code suivantes dans mon js :
                  idAjout = document.getElementById('Ajout').value;
                  var option = new Option(idAjout,idAjout);
                  document.getElementById('NomFourn').options[document.getElementById('NomFourn').length]=option

                  Merci pour votre patience. Surtout à toi Golmote. Tu a le droit à un gros bisous ^^:p
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Liste déroulante qui ne se rafraichit pas

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown