J'ai un problème avec une variable de session. J'ai crée deux listes deroulantes liées entre elle en AJAX. J'ai besoin de recuperer les 2 valeurs des listes déroulantes. J'arrive bien a recuperer l'info de la premiere liste mais mais l'info de la seconde.
voici le code du premier formulaire
Code : Tout sélectionner
<?php
session_start() // démarre une session dans cette page
?>
<h2>Veuillez selectionner une matiere</h2>
<?php
require("includes/connexion_bd.inc");
$segment = $_POST['segment'] ;
$_SESSION['segment'] = $_POST['segment'];
$techno = $_POST['techno'] ;
$_SESSION['techno'] = $_POST['techno'];
echo "segment: <b>".$_SESSION['segment']."</b><br>\n" ;
echo "techno: <b>".$_SESSION['techno']."</b><br>\n" ;
?>
<html>
<head>
<title>Matiere et modules</title>
<script type="text/javascript">
//construction de l'objet de type http Request
//Declarée la variable ici est publique à toutes les autres fonctions
var xhr_object = null;
//***********************
function ObjXHTTP(){
//***********************
//test le navigateur pour choisir la méthode appropiée et voir s'il est compatible
if (window.XMLHttpRequest) {
// test Firefox / netscape / Ie>= 7
xhr_object = new XMLHttpRequest();
return ("IE7 et plus");
}
else if (window.ActiveXObject) {
// IE<7
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
return ("IE < 7");
}
else {
// Navigateur non compatible (en apparence)
alert ("votre navigateur ne semble pas compatible avec la technologie de ce site");
return(""); // Arret du script
}
}
//****************************
function synchrolistes(){
//***************************
// cette fonction va faire un appel à une requete AJAX pour afficher les villes du pays
// recuperer le pays choisi
var matiere = document.f.matiere.value;
//alert (matiere);
// Recupere l'xhr_object au navigateur
var test=ObjXHTTP()
//alert (test);
if (test=="" ){ return;}
// Préparation du contenu de la requête
// Construction de la QueryString (mode Get)
var navig=navigator.appName; // nom du navigateur
//alert (navig + "\n" + navigator.appVersion);
var qs = "?matiere=" + matiere + "&navig=" + navig;
alert (qs);
//appel de la page php serveur qui va aller chercher les matieres correspondantes
// preparation de la requete en mode GET, non synchrone (false)
xhr_object.open("GET", "ajaxmatiere.php" + qs, false);
// envoi de la requete
xhr_object.send(null); // null car GET si POST on met les variables POST
// traitement de la réponse
//En mode synchrone on attend ici l'info comme quoi le résultat est pret
if (xhr_object.readyState==4){
//le résultat est pret
//alert (xhr_object.responseText);
if (navig=="Microsoft Internet Explorer"){
document.getElementById("design").outerHTML=xhr_object.responseText
}
else {
document.getElementById("design").innerHTML=xhr_object.responseText
}
}
}
</script>
</head>
<body>
<form name="f">
<h4>Choissisez dans la liste ci-dessous :</h4>
<select name="matiere" size="1" onChange="synchrolistes()">
<option value="----">----</option>
<?php
$sql = "SELECT DISTINCT id_matiere,nom_matiere FROM matiere WHERE Id_mat_tech=\"$techno\" and id_mat_seg like '%$segment%' ORDER BY id_mat_tech";
// demande d'execution aupres de mysql
$result=mysql_query($sql, $link)
or die("Impossible d'executer la requete<br />".mysql_error());
while ($matiere=mysql_fetch_array($result)){
echo "<option value='$matiere[0]'>$matiere[1]</option>,\n\r";
}
?>
</select>
<h2>Veuillez selectionner un module</h2>
<h4>Choissisez dans la liste ci-dessous :</h4>
<select name="design" id="design" size="1">
<option value="----">----</option>
</select>
</form>
<form name="f2" target="balnk" method="get" action="synthese.php">
<input type="submit" value="envoyer">
</form>
</body>
</html>Code : Tout sélectionner
<?php
session_start() // démarre une session dans cette page
?>
<?php
// recupere la connexion
require("includes/connexion_bd.inc");
// lecture des variables de la QuerSstring
echo "segment: <b>".$_SESSION['segment']."</b><br>\n" ;
echo "techno: <b>".$_SESSION['techno']."</b><br>\n" ;
echo "design: <b>".$_SESSION['design']."</b><br>\n" ;
echo "navig: <b>".$_SESSION['navig']."</b><br>\n" ;
$_SESSION['matiere'] = $_GET['matiere'];
$matiere=$_GET["matiere"];
$sql = "SELECT DISTINCT Id_design,Nom_design FROM Design WHERE Id_design=\"$matiere\" ORDER BY Id_design";
$result=mysql_query($sql, $link)
or die("Impossible d'executer la requete<br />".mysql_error());
// si le navigateur est ie il faut ajouter une ligne avant et apres pour redefinir les options de la liste SELECT
if ($navig=="Microsoft Internet Explorer"){
echo "<select name='design' id='design' size='1'>";
}
while ($design=mysql_fetch_row($result)){
echo "<option value=\"$design[0]\">$design[1]</option>,\n\r";
}
if ($navig=="Microsoft Internet Explorer"){
echo "</select>";
}
?>
Code : Tout sélectionner
<?php
session_start() // démarre une session dans cette page
?>
<html>
<body>
<h2>Veuillez selectionner une matiere</h2>
<h3>Choissisez dans la liste ci-dessous :</h3>
<?php
// recupere la connexion
require("includes/connexion_bd.inc");
echo "segment: <b>".$_SESSION['segment']."</b><br>\n" ;
echo "techno: <b>".$_SESSION['techno']."</b><br>\n" ;
echo "matiere: <b>".$_SESSION['matiere']."</b><br>\n" ;
echo "design: <b>".$_SESSION['design']."</b><br>\n" ;
echo "navig: <b>".$_SESSION['navig']."</b><br>\n" ;
?>
</body>
</html>Merci d'avance