Récupérer la valeur d'une liste déroulante [Résolu/Fermé]

Signaler
Messages postés
47
Date d'inscription
jeudi 10 avril 2008
Statut
Membre
Dernière intervention
14 décembre 2012
-
 excelboy -
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

Messages postés
27
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
12 mars 2012
2
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

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.
Messages postés
47
Date d'inscription
jeudi 10 avril 2008
Statut
Membre
Dernière intervention
14 décembre 2012

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
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