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 :

Select - Javascript possible ?


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Par d�faut Select - Javascript possible ?
    Bonjour,

    A force de chercher sur divers forums une solution pour mon probl�me j'ai r�ussi � cr�er ce bout de code qui r�pond +/- � mes besoins mais j'ai un s�rieux probl�me et je pense que du Javascript pourrait m'aider, malheureusement je ne sais pas comment coder ce code ci dessous en java.

    Je m'explique: je voudrais afficher une picklist via un select suivant l'option choisie dans la premi�re picklist.

    Ca fonctionne tr�s bien sauf que pour que �a marche j'ai d� utiliser la fonction submit sur mon premier onchange. R�sultat mon formulaire est envoy� alors qu'il n'est pas complet...

    Biens�r ceci est du PHP mais je suppose que je dois cr�er une fonction en javascript (d'o� ma question ici) que je d�clare dans mon onchange et lorsque la fonction est appel�e, elle v�rifie dans la DB les options du premier select. Le but �tant d'afficher les mod�les de v�hicules suivant la marque de voiture que l'on a choisie.

    En plus � cause du submit de la premi�re picklist le nom de la marque ne s'affiche jamais puisque le formulaire est rafraichi � chaque fois

    Est-il possible de remplacer ces onchange/submit par une fonction javascript ??? Je sais bien que le javascript s'ex�cute c�t� client mais j'imagine qu'il est possible de faire un query sql vers le serveur lorsque la fonction est ex�cut�e, non ? Au pire charger toutes les donn�es de la DB (vu qu'il n'y a pas non plus des milliers de mod�les et de marques) et de n'afficher que ce dont on a besoin...

    PS: je suis nul en javascript


    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
    <?php
    include 'connect.php';
    $db=mysql_connect($DBHost,$DBUser,$DBPass);
    mysql_select_db($DBName,$db);
    echo '<form name="valid" method="post" action="result.php">';
     
    $sql1 = 'SELECT * FROM auto_marques';
    $result1=mysql_query($sql1) or die ("Erreur requete");
     
    echo'<form method="post" action="test.php">
    <select name="marques" onChange="this.form.submit()">
    <option value='.$data['nom'].'></option>';
    while ($data = mysql_fetch_array($result1))
          {
          echo '<option onChange="this.form.submit()" value='.$data['nom'].'>'.$data['nom'].'</option>';
          }
    echo '</select></form>';
     
    $marque = $_POST['marques'];
     
    echo '<form method="post" action="test.php">
    <select name="modele">
    <option value="'.$data['nom'].'"></option>';
    $sql2 = "SELECT * FROM auto_modeles WHERE idmarques='$marque'";
    $result2=mysql_query($sql2) or die ("Erreur requete");
    while ($data = mysql_fetch_assoc($result2))
          {
          echo '<option value='.$data['nom'].'>'.$data['nom'].'</option>';
          }
    echo '</select>';
     
    echo '</form><BR><input type="submit" name="submit" value="Envoyer"></form>';
     
    ?>

  2. #2
    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 : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    A force de chercher sur divers forums une solution pour mon probl�me
    Tu n'as pas d� chercher bien loin : r�ponse ici
    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

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Par d�faut
    Ah bhein en fait si, enfin pas cette page l� mais la premi�re solution je l'avais d�j� vue sous une autre forme mais comme ce sont des array je ne savais pas comment faire (et je ne sais toujours pas d'ailleur) pour modifier les array par les donn�es de ma DB...

    Par contre, je suis un vrai newbie parce que j'ai toujours �ject� de mes recherches celles qui parlaient d'AJAX vu que je ne savais pas ce que c'�tait lol mais je viens de faire un tour sur wiki pour me rendre compte que ce n'est pas un langage en soi (enfin pas un nouveau), sauf que je ne suis pas s�r que le XML tourne sur le serveur que j'utilise en intrAnet... je vais donc devoir tester �a

    Merci pour ta r�ponse Bovino

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Par d�faut
    Bon apr�s essais la solution AJAX ne fonctionne pas

    J'ai bien les deux picklists mais elles sont vides, pas moyen de choisir un auteur dans la DB et donc aucun livre... pourtant j'ai juste fait un copier coller du code. J'ai v�rifi� les login/password c'est ok et les deux tables dans la DB sont bien remplies avec les donn�es pour l'exemple...

    Une petite id�e d'o� peut venir le probl�me ? Parce que l� je reste sur ma faim

  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 : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Sans nous montrer de code (html g�n�r� plut�t que php / js / �ventuellement la r�ponse serveur Ajax) point de salut !
    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
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Par d�faut
    Bhein en fait j'ai test� le code de la FAQ que tu m'as envoy� (sur le lien que tu as mis ci dessus, le deuxi�me car le premier ce sont des Arrays)

    Je n'ai aucun message d'erreur, m�me pas le message "Votre navigateur ne supporte pas les objets XMLHTTPRequest..." pr�vu dans le code, donc visiblement �a devrait fonctionner mais on dirait que la DB n'est pas consult�e. En tous cas les deux SELECT sont bien l� mais d�sesp�r�ment vides.

    Voici les codes que j'ai utilis�s (j'ai bien entendu cr�� les deux tables dans la DB "test" et inclus les donn�es via une requ�te SQL, apr�s v�rifications, elles sont bien l� et les donn�es dedans. Les noms des tables, DB, login et password corrects):

    auteurs.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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    <html>
    	<head>
    		<title>Tutoriel Ajax (XHTML + JavaScript + XML)</title>
    		<script type='text/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('livre').innerHTML = leselect;
    					}
    				}
     
    				// Ici on va voir comment faire du post
    				xhr.open("POST","ajaxLivre.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'auteur
    				sel = document.getElementById('auteur');
    				idauteur = sel.options[sel.selectedIndex].value;
    				xhr.send("idAuteur="+idauteur);
    			}
    		</script>
    	</head>
    	<body>
    		<form>
    			<fieldset style="width: 500px">
    				<legend>Liste liées</legend>
    				<label>Auteurs</label>
    				<select name='auteur' id='auteur' onchange='go()'>
    					<option value='-1'>Aucun</option>
    					<?
    						mysql_connect("localhost","root","root");
    						mysql_select_db("test");
    						$res = mysql_query("SELECT * FROM auteur ORDER BY nom");
    						while($row = mysql_fetch_assoc($res)){
    							echo "<option value='".$row["id"]."'>".$row["nom"]."</option>";
    						}
    					?>
    				</select>
    				<label>Livres</label>
    				<div id='livre' style='display:inline'>
    				<select name='livre'>
    					<option value='-1'>Choisir un auteur</option>
    				</select>
    				</div>
    			</fieldset>
    		</form>
    	</body>
    </html>


    ajaxLivre.php

    Code php : 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='livre'>";
    	if(isset($_POST["idAuteur"])){
    		mysql_connect("localhost","root","root");
    		mysql_select_db("test");
    		$res = mysql_query("SELECT id,titre FROM livre 
    			WHERE idAuteur=".$_POST["idAuteur"]." ORDER BY titre");
    		while($row = mysql_fetch_assoc($res)){
    			echo "<option value='".$row["id"]."'>".$row["titre"]."</option>";
    		}
    	}
    	echo "</select>";
    ?>

Discussions similaires

  1. Interpr�ter du php dans du javascript : possible?
    Par floctc dans le forum Langage
    R�ponses: 3
    Dernier message: 19/06/2009, 11h55
  2. Requ�te SELECT Multibase possible ?
    Par asenaici dans le forum Connexion aux bases de donn�es
    R�ponses: 5
    Dernier message: 07/04/2009, 08h41
  3. Visibility d'un SELECT Javascript
    Par cyrilskof dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 04/09/2008, 17h36
  4. [DOM] <select> JAVASCRIPT sous IE
    Par kosowski dans le forum G�n�ral JavaScript
    R�ponses: 7
    Dernier message: 19/06/2008, 16h43
  5. Requ�te SELECT CASE possible ?
    Par david71 dans le forum Langage SQL
    R�ponses: 2
    Dernier message: 28/01/2008, 09h34

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