Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1765 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  formulaire "dynamique"

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

formulaire "dynamique"

n°1140305
l3eleg
cosmik connection
Posté le 05-07-2005 à 12:54:16  profilanswer
 

Bonjour a tous,
je travaille à l'élaboration d'un formulaire d'ajout d'informations dans une BDD à l'aide de PHP.
J'utilise une classe disponible ici : http://www.aidejavascript.com/article106.html
Le formulaire contient deux listes déroulantes, dont le contenu est lu à partir de la BDD.
J'aimerais faire en sorte que le contenu de la deuxieme liste depende de celui de la premiere et donc qu'il soit affiché en fonction du choix de l'utilisateur.
J'ai parcouru le forum, vu quelques solutions proposées mais je ne parviens pas (je crois :D) a les mettre en oeuvre, j'aimerais donc avoir plus d'informations à ce sujet.
 
Merci,

mood
Publicité
Posté le 05-07-2005 à 12:54:16  profilanswer
 

n°1140395
cesarr89
Posté le 05-07-2005 à 14:18:24  profilanswer
 

Si c'est pour un intranet tu peux utiliser ceci:
http://www.toutjavascript.com/savo [...] quest.php3

n°1140466
l3eleg
cosmik connection
Posté le 05-07-2005 à 14:53:20  profilanswer
 

ca correspond a peu pres a ce que je recherche, je vais creuser de ce coté la. Merci de ta réponse

n°1140470
cesarr89
Posté le 05-07-2005 à 14:55:56  profilanswer
 

De rien.

n°1141719
l3eleg
cosmik connection
Posté le 06-07-2005 à 10:28:52  profilanswer
 

J'ai quelques soucis pour comprendre le fonctionnement de cette solution, n'ayant aucune notion en javascript, j'aimerais particulierement avoir plus d'informations concernant les lignes suivantes dans le script de la partie 5 du site que tu m'as donné :
 

Code :
  1. echo 'var o = null;';
  2. echo 'var s = document.forms["'.$_POST["form"].'"].elements["'.$_POST["select"].'"];';
  3. echo 's.options.length = 0;';
  4. while($r = mysql_fetch_array($result))
  5. echo 's.options[s.options.length] = new Option("'.$r["Species"].'" );';

n°1141876
l3eleg
cosmik connection
Posté le 06-07-2005 à 12:12:59  profilanswer
 

voila le code que j'ai modifié ... si quelqu'un peut m'expliquer pourquoi ca ne fonctionne pas d'après l'exemple donné sur le site je suis interessé !
 
fichier test.php

Code :
  1. <div class="Centered">
  2. <form class="CenteredForm" name="form_selects" id="form_selects" action="" method="" onsubmit="return false;">
  3.  <fieldset>
  4.   <legend>Faites un choix dans la liste de gauche<br />et observez le résultat dans celle de droite</legend>
  5.   <div class="Left">
  6.   Famille&nbsp;:
  7.   <select name="nomsecteur" id="nomsecteur" class="ButtonL" onchange="request05(this.form)">
  8.    <option value="" selected="selected"></option>
  9.    <option value="HABITAT"             >Habitat</option>
  10.    <option value="ARTISAN FRANCAIS"             >Félidés</option>
  11.    <option value="Équidés"             >Équidés</option>
  12.    <option value="Bovidés"             >Bovidés</option>
  13.   </select>
  14.   &nbsp;&nbsp;&nbsp;Espèces&nbsp;:
  15.   <select name="list2" id="list2" class="ButtonL">
  16.   </select>
  17.   </div>
  18.  </fieldset>
  19. </form>
  20. </div>
  21. <SCRIPT language=javascript>
  22. var l1    = f.elements["nomsecteur"];
  23. var l2    = f.elements["list2"];
  24. var index = l1.selectedIndex;
  25. if(index < 1)
  26.    l2.options.length = 0;
  27. else {
  28.    var xhr_object = null;
  29.    if(window.XMLHttpRequest) // Firefox
  30.       xhr_object = new XMLHttpRequest();
  31.    else if(window.ActiveXObject) // Internet Explorer
  32.       xhr_object = new ActiveXObject("Microsoft.XMLHTTP" );
  33.    else { // XMLHttpRequest non supporté par le navigateur
  34.       alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );
  35.       return;
  36.    }
  37.    xhr_object.open("POST", "test2.php", true);
  38.    xhr_object.onreadystatechange = function() {
  39.       if(xhr_object.readyState == 4)
  40.          eval(xhr_object.responseText);
  41.    }
  42.    xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded" );
  43.    var data = "family="+escape(l1.options[index].value)+"&form="+f.name+"&select=list2";
  44.    // Envoi des données du formulaire
  45.    xhr_object.send(data);
  46. }
  47. </SCRIPT>


 
 
fichier test2.php

Code :
  1. <?
  2. $mysql_db = @mysql_connect("localhost", "********", "******" );
  3. @mysql_select_db("idea-nova" );
  4. $query  = "SELECT `nomactivite` FROM `secteurs` WHERE `nomsecteur` = '".$_POST["nomsecteur"]."'";
  5. $query .= " ORDER BY `NomActivite`";
  6. $result = @mysql_query($query);
  7. echo $result;
  8. echo '<SCRIPT language=javascript>';
  9. echo 'var o = null;';
  10. echo 'var s = document.forms["'.$_POST["form"].'"].elements["'.$_POST["select"].'"];';
  11. echo 's.options.length = 0;';
  12. while($r = mysql_fetch_array($result))
  13.   {
  14.   echo $r,'<br>';
  15. echo 's.options[s.options.length] = new Option("'.$r["nomactivite"].'" );';
  16. }
  17. echo '</SCRIPT>';
  18. @mysql_close($mysql_db);
  19. ?>


Message édité par l3eleg le 06-07-2005 à 12:20:45
n°1141894
cesarr89
Posté le 06-07-2005 à 12:25:46  profilanswer
 

Ca veut dire quoi que ca marche pas?
Y'a des erreurs? Ca te marque quelque chose?

n°1141900
l3eleg
cosmik connection
Posté le 06-07-2005 à 12:29:27  profilanswer
 

la liste déroulante qui est sensée se mettre à jour lorsque l'on fait son choix dans la premiere reste désespérement vide. De plus on dirait que le fichier test2.php n'est pas appelé car j'ai fais des echo dedans pour essayer de comprendre ce qui n'allait pas et je ne les vois pas apparaitre lors de l'appel de test.php
Je te remercie d'avance pour ton aide précieuse

n°1141909
cesarr89
Posté le 06-07-2005 à 12:34:34  profilanswer
 

C'est normal que les vois pas, car tu fais un eval sur le retour de ton HttpRequest.

n°1141912
l3eleg
cosmik connection
Posté le 06-07-2005 à 12:36:39  profilanswer
 

hola hola ... comme je l'ai dis plus haut, j'ai jamais fais de javascript. Dans le cas présent, c'est normal de pas voir les echos ? ou de ne pas voir le contenu de la liste pris sur la BDD ?

mood
Publicité
Posté le 06-07-2005 à 12:36:39  profilanswer
 

n°1141915
cesarr89
Posté le 06-07-2005 à 12:38:19  profilanswer
 

De pas voir les echos. En fait tu les vois mais tu demandes à ce que ce soit considéré comme du code et donc intérprété.

n°1141919
l3eleg
cosmik connection
Posté le 06-07-2005 à 12:42:23  profilanswer
 

Ha d'accord. Donc les echo a partir de la ligne 11 dans test2.php n'ont pas besoin d'etre encadré par des balises script comme je l'ai rajouté dans le source.

n°1141922
cesarr89
Posté le 06-07-2005 à 12:44:54  profilanswer
 

Bah non ya pas besoin


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  formulaire "dynamique"

 

Sujets relatifs
affichage dynamique de champs dans un formulaire[XML/PHP/SQL] Formulaire dynamique + base de données: quel logiciel
javascript et php - formulaire dynamiquetritement dynamique d'un formulaire
Accès aux champs d'un formulaire dynamiqueFormulaire dynamique en javascript
Envois dynamique de formulaire.calcul dynamique en fonction d'un formulaire
Formulaire dynamiqueMon premier formulaire dynamique...
Plus de sujets relatifs à : formulaire "dynamique"


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR