Accueil > Forum > > > > 2 Liste déroulantes liées + récupération de la valeur de la 2éme liste
2 Liste déroulantes liées + récupération de la valeur de la 2éme liste
jeudi 6 août 2009 à 17:49:35 |
2 Liste déroulantes liées + récupération de la valeur de la 2éme liste

didine6
|
Bonjour à tous,
Je débute avec Ajax, et je trouve cette technique trop trop bien, notamment pour alimenter une seconde liste déroulante depuis la sélection de la première. ça fonctionne tbien.
Mon problème, c'est que j'ai besoin de récupérer les valeurs de chacune des listes déroulantes, et que je ne récupère que la première.
D'où vient mon pb ? J'ai cherché sur le net, mais pas trouvé.
Voici des bouts de mon code (que j'ai repris d'un super tuto d'ailleurs pour la partie ajax).
<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('code').innerHTML = leselect;
}
}
// Ici on va voir comment faire du post
xhr.open("POST","ajaxetab.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('type');
type = sel.options[sel.selectedIndex].value;
xhr.send("type="+type);
}
</script>
</head>
<?php
echo "<form name='ajout_insc' action='dossier.php?num_enfant=".$_GET['num_enfant']."&fiche=insc' method='POST'>";
echo "<tr><td>"; ?>
<select name='type' id='type' onchange='go()'>
<option value='-1'>Aucun</option>
<?
$sql="SELECT DISTINCT type FROM phoebe.etablissement ORDER BY type";
$conn = oci_connect("Phoebe", "guitare", "MIBA");
$res=ociparse($conn, $sql); //préparation de la req
//si la req ne fonctionne pas, on affiche l'erreur correspondante
if(!$res){
$e=$oci_error($conn);
return htmlentities($e['message']);
}
ociexecute($res); //exécution de la req
while($req=oci_fetch_array($res,OCI_BOTH)) {
echo "<option value='".$req[0]."'>".$req[0]."</option>";
}
?>
</select></td>
<td colspan='2'>
<div id='code' style='display:inline'>
</td>
?>
Page ajaxetab.php
<?php
echo "<select name='code'>";
if(isset($_POST["type"])){
$conn = oci_connect("Phoebe", "guitare", "MIBA");
$sql = "SELECT code,nom FROM etablissement
WHERE type='".$_POST["type"]."' ORDER BY nom";
$res=ociparse($conn, $sql); //préparation de la req
//si la req ne fonctionne pas, on affiche l'erreur correspondante
if(!$res){
$e=$oci_error($conn);
return htmlentities($e['message']);
}
ociexecute($res); //exécution de la req
while($req=oci_fetch_array($res,OCI_BOTH)) {
echo "<option value='".$req[0]."'>".$req[1]."</option>";
}
}
else {echo "<option value='-1'>Choisir un type</option>";}
echo "</select>";
?>
Merci @ tous.
Didine
|
|
vendredi 7 août 2009 à 08:18:51 |
Re : 2 Liste déroulantes liées + récupération de la valeur de la 2éme liste
|
vendredi 7 août 2009 à 08:33:40 |
Re : 2 Liste déroulantes liées + récupération de la valeur de la 2éme liste

didine6
|
Merci de votre réponse,
En fait c'est exactement ce que je fait, mais je n'ai aucune valeur.
Je récupère en POST
//Le 'inserer' est le nom du bouton submit qui n'apparait pas dans mon code dans le 1er post
if(IsSet($_POST['inserer'])) {
echo "ok insertion";
echo "<br />Code : ".$_POST['code'];
echo "<br />Type : ".$_POST['type'];
echo "<br />Date: ".$_POST['date_insc'];
}
J'ai bien type et date_insc, par contre, le code est vide...
C'est peut être tout simplement que ma seconde liste déroulante est dans la page ajaxetab.php et que du tout, dans la page d'appel, il ne connait pas la variable ?!?
Didine
|
|
vendredi 7 août 2009 à 10:04:40 |
Re : 2 Liste déroulantes liées + récupération de la valeur de la 2éme liste
|
vendredi 7 août 2009 à 10:33:00 |
Re : 2 Liste déroulantes liées + récupération de la valeur de la 2éme liste

didine6
|
Ben oui, il n'y a pas d'événement onChange car je veux le gérer avec PHP.
Comme la balise select est dans une balise <form>, il devrait transmettre la valeur sélectionnée.
Et merci pour la remarque, des id avec le même nom, je n'y avais pas fait attention.
Didine
|
|
vendredi 7 août 2009 à 12:13:40 |
Re : 2 Liste déroulantes liées + récupération de la valeur de la 2éme liste
|
Cette discussion est classée dans : req, type, liste, xhr, if
Répondre à ce message
Sujets en rapport avec ce message
Confirmation du formulaire [ par Netlink ]
Salut à tous,Je rencontre un problème pour faire ceci :J'ai mon formulaire de base (page inscription.shtml) :blablablablaDonc une f
liste deroulantes et information de liste instantanée [ par gabs77 ]
bonjour, je suis en trin de faire un formulaire avec une liste deroulantes afin de proposer un eventail de choix, or pour avoir des informations sur l
selection par id sous internet explorer [ par alexius ]
Bonjour à tous, en testant mon code sous ie je me suis apercu que mon code ne marchai plus.Je crois que cela vien de document.getElementById.Je cherch
liste deroulantes ki rempli un champ [ par gabs77 ]
bonjour, j aimerais ke lorsque l'on sélectionne un champ d'une liste deroulanteinstantanément une donnée de la bdd associé à ce champ apparaissentg un
synchroniser une requete ajax asynchrone [ par AlexN ]
Bonjour,Je cherche à synchroniser une requete ajax asynchrone. Et je prend une grosse suée.Je fais appel de manière cyclique à une requete ajax en mod
Rafraichir la page via choix dans liste [ par pasdie ]
Bonjour à tous,Voilà mon problème :J'ai une page PHP contenant deux listes.Ma première liste est remplie via une requete sur mon serveur (je possède E
Vérification de doublons [ par eddie5150 ]
Bonjour à tous,je viens de me lancer dans AJAX, mais je ne comprends pas encore tout très bien,aussi j'ai essayé d'effectuer une vérification automati
Liste déroulante avec recherche par clavier [ par chahy ]
Bonjour les amiesj'ai un petit probléme que je n'arrive pas a le resoudre , je veux que le resultat trouvez avec cette Liste déroulante avec recherche
Réinitialisation d'une liste déroulante après requete ajax [ par lowkey ]
Bonjour,Voici ce que je développe :une question s'affiche, les réponses sont dans une liste déroulante.Lorsque je sélectionne une réponse, la question
Contenu qui s'efface après XmlHttpRequest [ par Yoanned ]
Bonjour à tous !Je suis débutant en Javacript, et je m'arrache les cheveux sur un problème que je ne sais pas résoudre...J'essaie de récupérer des inf
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Forum
UTILISER UN .JSUTILISER UN .JS par zaikoe
Cliquez pour lire la suite par zaikoe
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|