Conserver valeur liste après click sur bouton
Spanish_
Messages postés
52
Statut
Membre
-
Mimiste Messages postés 1159 Statut Membre -
Mimiste Messages postés 1159 Statut Membre -
Bonjour,
J'ai actuellement 2 listes déroulantes qui sont liées, une rapatrie les pages de mon site l'autre les chapitres , contenues en base Mysql.
Mon souci est que quand je clique sur 1 page de ma liste et sur un chapitre de ma liste puis sur Confirmer alors cela me remet pour les 2 listes les valeurs de départ.
J'ai donc modifier mon code en conséquence, mais j'ai beau l'avoir appliquer aux 2 listes , ça ne marche pas que pour la liste "page", c'est à dire qu'il me conserve uniquement , après validation, la valeur de la page sélectionnée mais pas celle du chapitre.
Où ai-je fais une erreur?
ma page essai.php
Code :
<?php require_once('infos_connexion.php'); ?>
<html>
<head>
<script type="text/javascript">
/**
* Permet d'envoyer des données en GET ou POST en utilisant les XmlHttpRequest
*/
function sendData(param,zone, page)
{
if(document.all)
{
//Internet Explorer
var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
}//fin if
else
{
//Mozilla
var XhrObj = new XMLHttpRequest();
}//fin else
//définition de l'endroit d'affichage:
var content = document.getElementById(zone);
XhrObj.open("POST", page);
//Ok pour la page cible
XhrObj.onreadystatechange = function()
{
if (XhrObj.readyState == 4 && XhrObj.status == 200)
content.innerHTML = XhrObj.responseText ;
}
XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
XhrObj.send(param);
}//fin fonction SendData
</script>
</head>
<body>
<form action="" method="post">
<?php
$i=0; // variable de test
$j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage
$connexion = mysql_connect($hostname,$username_db,$password_db) or die ("Connexion au serveur impossible");
mysql_select_db($database,$connexion);
// Séléction de tous les enregistrements de la table Catégorie
$rq="Select * from pages order by id_page;";
$result= mysql_query ($rq) or die ("Select impossible");
?>
<H4>Choix de la page</H4>
<select name="cat" OnChange="sendData('id='+this.value,'chapitre','liresc.php')" onKeyUp="sendData('id='+this.value,'chapitre','liresc.php')">
<?php
while ($dt=mysql_fetch_row($result))
{
$selected = (isset($_POST['cat']) and $_POST['cat'] == $dt[0])?'selected="selected"':'';
// Remplir la liste déroulante des catégorie
echo '<option value="'.($dt[0]).'" '.$selected.' >'.($dt[1]).'</option>';
if ($i==0) { $j=$dt[0]; $i=1; } // garder la valeur du premier enregistrement
}
?>
</select>
<div id="chapitre">
<H4>Choix du chapitre</H4>
<select size='1' name='souscat'>
<?php
$rq="Select * from chapitres where id_page=".$j." order by id_chapitre;";
$result= mysql_query ($rq) or die ("Select impossible");
// $i = initialise le variable i
$i=0;
while ($dt=mysql_fetch_row($result))
{
$selected = (isset($_POST['souscat']) and $_POST['souscat'] == $dt[0])?'selected="selected"':''; echo '<option value="'.($dt[0]).'" '.$selected.' >'.($dt[3]).'</option><br>';
} ?>
</select>
<input type="submit" value="confirmer" />
</div>
</form>
</body>
</html>
ma page liresc.php:
Code :
<?php require_once('infos_connexion.php'); ?>
<?php
header('Content-type: text') ; // on déclare ce qui va être afficher
// test des POST emis
if(isset($_POST['id']) && !empty($_POST['id']) ){
$connexion = mysql_connect($hostname_db,$username_db,$password_db) or die ("Connexion au serveur impossible");
mysql_select_db($database,$connexion);
$rq="Select * from chapitres where id_page=".$_POST['id']." order by id_page;";
$result= mysql_query ($rq) or die ("Select impossible");
// $i = initialise le variable i
$i=0;
if (mysql_num_rows($result)>0)
{
echo '<H4>Choix du chapitre</H4><select size="1" name="souscat" >';
}
else
{
echo utf8_encode("Pas de chapitre disponible");
}
while ($dt=mysql_fetch_row($result))
{
$selected = (isset($_POST['souscat']) and $_POST['souscat'] == $dt[0])?'selected="selected"':''; echo '<option value="'.utf8_encode($dt[0]).'" '.$selected.'>'.utf8_encode($dt[3]).'</option><br>';
}
}
echo "</select><br><p><input type='submit' name='Submit' value='Confirmer'></p>";
?>
Merci d'avance
J'ai actuellement 2 listes déroulantes qui sont liées, une rapatrie les pages de mon site l'autre les chapitres , contenues en base Mysql.
Mon souci est que quand je clique sur 1 page de ma liste et sur un chapitre de ma liste puis sur Confirmer alors cela me remet pour les 2 listes les valeurs de départ.
J'ai donc modifier mon code en conséquence, mais j'ai beau l'avoir appliquer aux 2 listes , ça ne marche pas que pour la liste "page", c'est à dire qu'il me conserve uniquement , après validation, la valeur de la page sélectionnée mais pas celle du chapitre.
Où ai-je fais une erreur?
ma page essai.php
Code :
<?php require_once('infos_connexion.php'); ?>
<html>
<head>
<script type="text/javascript">
/**
* Permet d'envoyer des données en GET ou POST en utilisant les XmlHttpRequest
*/
function sendData(param,zone, page)
{
if(document.all)
{
//Internet Explorer
var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;
}//fin if
else
{
//Mozilla
var XhrObj = new XMLHttpRequest();
}//fin else
//définition de l'endroit d'affichage:
var content = document.getElementById(zone);
XhrObj.open("POST", page);
//Ok pour la page cible
XhrObj.onreadystatechange = function()
{
if (XhrObj.readyState == 4 && XhrObj.status == 200)
content.innerHTML = XhrObj.responseText ;
}
XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
XhrObj.send(param);
}//fin fonction SendData
</script>
</head>
<body>
<form action="" method="post">
<?php
$i=0; // variable de test
$j=0; // variable pour garder la valeur du premier enregistrement catégorie pour l'affichage
$connexion = mysql_connect($hostname,$username_db,$password_db) or die ("Connexion au serveur impossible");
mysql_select_db($database,$connexion);
// Séléction de tous les enregistrements de la table Catégorie
$rq="Select * from pages order by id_page;";
$result= mysql_query ($rq) or die ("Select impossible");
?>
<H4>Choix de la page</H4>
<select name="cat" OnChange="sendData('id='+this.value,'chapitre','liresc.php')" onKeyUp="sendData('id='+this.value,'chapitre','liresc.php')">
<?php
while ($dt=mysql_fetch_row($result))
{
$selected = (isset($_POST['cat']) and $_POST['cat'] == $dt[0])?'selected="selected"':'';
// Remplir la liste déroulante des catégorie
echo '<option value="'.($dt[0]).'" '.$selected.' >'.($dt[1]).'</option>';
if ($i==0) { $j=$dt[0]; $i=1; } // garder la valeur du premier enregistrement
}
?>
</select>
<div id="chapitre">
<H4>Choix du chapitre</H4>
<select size='1' name='souscat'>
<?php
$rq="Select * from chapitres where id_page=".$j." order by id_chapitre;";
$result= mysql_query ($rq) or die ("Select impossible");
// $i = initialise le variable i
$i=0;
while ($dt=mysql_fetch_row($result))
{
$selected = (isset($_POST['souscat']) and $_POST['souscat'] == $dt[0])?'selected="selected"':''; echo '<option value="'.($dt[0]).'" '.$selected.' >'.($dt[3]).'</option><br>';
} ?>
</select>
<input type="submit" value="confirmer" />
</div>
</form>
</body>
</html>
ma page liresc.php:
Code :
<?php require_once('infos_connexion.php'); ?>
<?php
header('Content-type: text') ; // on déclare ce qui va être afficher
// test des POST emis
if(isset($_POST['id']) && !empty($_POST['id']) ){
$connexion = mysql_connect($hostname_db,$username_db,$password_db) or die ("Connexion au serveur impossible");
mysql_select_db($database,$connexion);
$rq="Select * from chapitres where id_page=".$_POST['id']." order by id_page;";
$result= mysql_query ($rq) or die ("Select impossible");
// $i = initialise le variable i
$i=0;
if (mysql_num_rows($result)>0)
{
echo '<H4>Choix du chapitre</H4><select size="1" name="souscat" >';
}
else
{
echo utf8_encode("Pas de chapitre disponible");
}
while ($dt=mysql_fetch_row($result))
{
$selected = (isset($_POST['souscat']) and $_POST['souscat'] == $dt[0])?'selected="selected"':''; echo '<option value="'.utf8_encode($dt[0]).'" '.$selected.'>'.utf8_encode($dt[3]).'</option><br>';
}
}
echo "</select><br><p><input type='submit' name='Submit' value='Confirmer'></p>";
?>
Merci d'avance
A voir également:
- Conserver valeur liste après click sur bouton
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Diagnostic bouton photo - Accueil - Outils
- Site dangereux liste - Guide
- Bouton on/off comment savoir ✓ - Forum Matériel & Système