listes déroulantes et dépendantes en php!!!

Invité
Invité n'ayant pas de compte PHPfrance

08 août 2007, 16:23

j'ai déja essayé cette méthode mais ca ne marche pas...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

08 août 2007, 16:41

C'est parce qu'elle n'a pas de jambes... :x

Si tu nous disais plutot ce qui ne fonctionne pas ? quelles sont les alertes qui apparaissent ? les messages d'erreur ? les données sont elles bien envoyées à la page php ? est ce que le code du script php fonctionne si tu l'appelles en lui passant les paramètre dans le navigateur ? quelles sont les valeurs retournées ? l'élément dans lequel tu écris existe-t-il ? .......
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Invité
Invité n'ayant pas de compte PHPfrance

08 août 2007, 16:46

j'ai essayé cette méthode mais je n'y arrive pas, je n'utilise pas MySQL...

je déprime là!

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

08 août 2007, 17:07

Pour ça faut consulter un forum de psychologie, nous on pourra juste t'aider pour des problèmes en php :wink:

Que tes données proviennent de mysql, de fichiers textes que tu parses, d'un télégramme chanté ou d'un pigeon voyageur, ne change absolument rien au principe de fonctionnement, suffit juste de les afficher dans ton script php...
nouvelle orientation, nouveau problème, la premièreliste se remplit mais n'appelle pas la deuxième en fonction du choix de la première liste
Si tu nous disais plutot ce qui ne fonctionne pas ? quelles sont les alertes qui apparaissent ? les messages d'erreur ? les données sont elles bien envoyées à la page php ? est ce que le code du script php fonctionne si tu l'appelles en lui passant les paramètre dans le navigateur ? quelles sont les valeurs retournées ? l'élément dans lequel tu écris existe-t-il ? .......
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

bbk974
Invité n'ayant pas de compte PHPfrance

08 août 2007, 17:37

j'ai essayé pas mal de méthodes. Y'en a une sur laquelle je me suis arrété jusqu'à ce que je déprime! J'ai deux tables processes(idprocess,heading) et procedures(idprocedure,heading,idprocess). ->heading=intitulé

Avec le code suivant, je remplis la première liste mais quand je clique sur un processus, rin ne se passe dans la deuxième liste qui n'est seulement remplie par "choisissez.."

J'ai pri trop de retard, j'en ai marre car ça me bloque complétement!

**FICHIER processus2.php**

Code : Tout sélectionner

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> <html> <head> <title>S&eacutelection proc&eacutedure</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('procedures').innerHTML = leselect; } } // Ici on va voir comment faire du post xhr.open("POST","ajaxprocedures.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'identifiant du processus sel = document.getElementById('processes'); idProcess = sel.options[sel.selectedIndex].value; xhr.send("idprocess="+idProcess); } </script> </head> <body> <form> <fieldset style="width: 650px"> <legend>Choix</legend> <label>Processus</label> <select name='processes' id='processes' onchange='go()'> <option value='-1'>Aucun</option> <?php include "modules/adodb/adodb.inc.php"; include "config/config.php"; $db = NewADOConnection("oci8"); $cstr = "(DESCRIPTION=(ADDRESS=(PROTOCOL=$PROTOCOL)(HOST=$HOST)(PORT=$PORT))(CONNECT_DATA=(SID=$SID)))"; $db->Connect($cstr, $USER, $PWD); $req="SELECT * FROM processes ORDER BY heading ASC"; $res=$db->Execute($req); while ($data=$res->FetchRow()) { echo"<option value='".$data["IDPROCESS"]."'>".$data["HEADING"]."</option>"; } ?> </select> <label>Procedure</label> <div id='Procedure' style='display:inline'> <select name='procedure'> <option value='-1'>Choisir un processus</option> </select> </div> </fieldset> </form> </body> </html>
**FICHIER ajaxprocedures.php**

Code : Tout sélectionner

<<?php echo "<select name='procedure'id='procedure'>"; if(isset($_POST["idprocess"])){ include "modules/adodb/adodb.inc.php"; include "config/config.php"; $db = NewADOConnection("oci8"); $cstr = "(DESCRIPTION=(ADDRESS=(PROTOCOL=$PROTOCOL)(HOST=$HOST)(PORT=$PORT))(CONNECT_DATA=(SID=$SID)))"; $db->Connect($cstr, $USER, $PWD); $req = "SELECT * FROM procedures WHERE idprocess=".$_POST["idprocess"]." ORDER BY idprocedure"; while ($data=$res->FetchAssoc()) { echo "<option value='".$data["idprocedure"]."'>".$data["heading"]."</option>"; } } echo "</select>"; ?>
Merci à tous de m'aider[/b]