par
le Piaf » 30 janv. 2010, 01:18
Bonsoir,
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 de la liste deoulante liée
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>";
}
?>
et enfin je teste toutes les infos remontées par les formulaires
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>
Je souhaite recuperer l'info du design.
Merci d'avance
Bonsoir,
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]<?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]
code de la liste deoulante liée
[code]<?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]
et enfin je teste toutes les infos remontées par les formulaires
[code]<?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>[/code]
Je souhaite recuperer l'info du design.
Merci d'avance