Récupérer la valeur d'une liste déroulante

Résolu/Fermé
ghizlanekh Messages postés 47 Date d'inscription jeudi 10 avril 2008 Statut Membre Dernière intervention 14 décembre 2012 - 17 avril 2008 à 15:43
 excelboy - 23 déc. 2008 à 16:41
slut tous le monde je reviens avec un autre problème.
j'ai trois page php la première: page1 la deuxième page2 et la troisième page3.
page1.php contient deux listes déroulantes liées, et pour alimenter sa deuxième liste déroulante elle contient
une fonction qui appel la page2.php .
la page2 ontient une requête avec les valeurs qui seront afficher dans ma deuxième liste déroulante.
Je sais c'est pas facile à comprendre je vous poste un bout de mon code pour mmieux comprenndre ce que je
veux dire:
ma page1: contient:
<script type='text/javascript'>
//-----deux liste liée section1-----\\
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;
}


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('article').innerHTML = leselect;
}
}

// Ici on va voir comment faire du post
xhr.open("POST","ajaxventes.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('marque');//marque est le nom de ma première liste déroulante
id_MARQUE = sel.options[sel.selectedIndex].value;
xhr.send("ID_MARQUE="+id_MARQUE);
}
</script>


et là je vous poste mes deux listes déroulantes

MARQUE D'ARTICLE <select name='marque' id='marque' onchange='go()'>
<option value='-1'>Aucun</option>
<?

$connect=mysql_connect("localhost","root","");
mysql_select_db("bd",$connect);
$res = mysql_query("SELECT IDMARQUE, CODE_MARQUE FROM MARQUES;");
while($row = mysql_fetch_assoc($res)){
echo "<option value='".$row["IDMARQUE"]."'>".$row["CODE_MARQUE"]."</option>";
}
?>
</select>
<div id='article' style='display:inline'>
<!--ce id est celui se trouvant dans document.getElementById('article').innerHTML = leselect;-->
CODES D'ARTICLES <select name='article' >
<!--name='article'--> <option value='-1'>Choisir le code d'un article</option>
</select>
</div>
<br /><br />



et dans la page2.php j'ai le code suivant:



<?php
if(session_id()=="")
{
session_start();
}
include("config.php");

?>
<html>

</html>
<?
echo "Code d'un article"."<select name='article'>";
echo"<option value='-1'>Choisissez un article</option>";
if(isset($_POST["ID_MARQUE"])){
$connect=mysql_connect("localhost","root","");
mysql_select_db("bd",$connect);
echo $_POST["IDMARQUE"];
$res = mysql_query("SELECT IDARTICLE, NOMARTICLE FROM `ARTICLES` where ID_MARQUE=".$_POST["ID_MARQUE"]." ; ");
while($row = mysql_fetch_assoc($res)){
echo "<option value='".$row["IDMARQUE"]."'>".$row["NOMARTICLE"]."</option>";
}
}
echo "</select>";

?>


bon jusque là tous marche bien.
les deux listes font ce que je veux.
mais le problème est:
quand je veux enregister les données de mes deux listes déroulantes
j'arrive à récupérer les valeurs de ma première liste déroulante ce qui normal car je poste sa valeur
dans la page3 mais la deuxième j'arrive pas à récuperer sa valeur.

j'ai essayé de poster le contenu de ma page2 dans ma page3 mais je ne peux pas même avec les sessions ça ne marche pas.
est ce que vous voyez une faute dans mon code sinon savez-vous comment je peux faire pour récupérer la valeur de ma deuxième
liste déroulante svp.

merci d'avance et si il y a quelque chose que vous ne comprenez pas je suis là pour vous répondre.

pour l'enregistrement je poste ce qui est dans

3 réponses

azegzaw Messages postés 27 Date d'inscription mercredi 23 avril 2008 Statut Membre Dernière intervention 12 mars 2012 2
16 déc. 2008 à 09:09
j'ai une liste deroulante , je veux selectionné un enregistrement et je le recupere dans la meme page et dans un champs texte! comment faire svp?
2
Il faut utiliser javascript.
Dans ta liste déroulante on blur ou onchange ="mettre_valeur()"
mettre_valeur()
{
document.f.text.value=document.f.liste.value;

}
L'idéee c'est ça.
Si t'as jamais fait du javascript envoie moi ton code et je te ferai la fonction et je vais essayer de t'expliquer...
allez bonne courage.
0
ghizlanekh Messages postés 47 Date d'inscription jeudi 10 avril 2008 Statut Membre Dernière intervention 14 décembre 2012
17 avril 2008 à 20:54
c bon j'ai trouve mon erreur. je me sui trompé dans le nom d'un champ.
merci comme même.


merci comme même
0
Je profite du cht sur les listes déroulantes EXCEL pour poser mon pb :

Je souhaiterais que l'utilisateur puisse être guidé en :

1) - ne tapant que les 1ères lettres et voir s'afficher le reste de l'expression
2) - ou en tapant une lettre (ou plusieurs), accéder directement dans la liste au 1er mot commençant par cette(ces) lettre(s)

Merci de votre aide
0