begin process at 2012 05 29 09:07:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

Framework

 > 

Ajax

 > 

2 Liste déroulantes liées + récupération de la valeur de la 2éme liste


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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

Bul3

Membre Club




Bonjour,

>>je débute avec Ajax, et je trouve cette
>>technique trop trop bien,
bah, c'est n'est jamais que appel d'un script
sur le serveur et la réponse de celui-ci est
rendue dans une variable
ça peut-être intéressant...
si on emploie à bon escient
et pas à tort et à travers
( faut pas tenter de réinventer le
dialogue normal serveur/client )

>>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.
récupérer ? où ?
coté javascript : onchange sur le select
coté serveur : faut l'appeler ce serveur
peut-être avec ajax.
faites, pour la 2ème liste, de la même
manière que vous récupérez le choix
pour la 1ère liste.


Cordialement [mon Site] [M'écrire] Bul

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

Bul3

Membre Club



affichez donc la page résultante, pas le php

à priori, lors du changement sur le 1er select
vous mettez un 2ème select dans le div 'code'
echo "<select name='code'>";
pour lequel, il n'y pas d'action onchange....
donc, rien ne se passe lorsque vous
faites un choix dans ce 2ème select.
remarque : <div id="code"> et <select name="code">
ça va vous poser des problèmes avec IE
( qui remplace l'ID par le name s'il n'existe
pas et inversement )

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

Bul3

Membre Club



donc le div 'code' est dans le form,
puisque c'est là qu'on insère le select ?
il ne me semble pas...

et pas vu de </form> d'ailleurs
ni de bouton submit
ni de submit() en js...
il est transmis comment ce formulaire ?



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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,685 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales