Page 1 sur 1
requete d'un select reprendre valeur ....
Posté : 15 sept. 2006, 19:38
par fabien_14
Bonjour,
Ma question est assez simple
peu t'on recuperer par la fonction GET la valeur d'une requete precedente ?
je m'explique j'ai un select que je rempli avec une requete ... ce select est dans le Header ...
hors je suis souvent amener a refaire une requete afin de reprendre cette valeur ....
voici le code :
Code : Tout sélectionner
<?php
$result = mysql_query("SELECT * FROM infos ORDER BY id");
$nb_total=mysql_num_rows($result);
if ($nb_total == 0) {
} else {
?>
<select name="infos" onChange="window.location.replace('index.php?dest='+this.value+'');">
<?
while($row = mysql_fetch_row($result)){
$id = $row[0];
$nom = $row[1];
echo "<option value=\"$id \"";
echo ">$nom </option>";
}
?>
</select>
<?
}
?>
en faite ademettons sur dans mon Url j'ai index.php?dest=8 je voudrai reprendre cette valeur dans mon div centrale et ne par refaire une requete expret pour afficher le nom de cette id ...
Merci de vos conseils
Posté : 15 sept. 2006, 19:49
par graphistnet
Tout à fait, si tu fais passer la variable dans l'url tu vas la récupérer à l'aide de $_GET['dest'] dans ton cas, sinon il y a les sessions aussi qui peuvent être utiles pour ca
Posté : 15 sept. 2006, 19:52
par fabien_14
Les sessions ca marche comment ? j'ai jamais trops compris ...
Par exemple si le visiteur choisi dans le select la section "Pratique" qui a pour ID 7
sa me donnerai donc index.php?dest=7 Met le truc c que si je veu afficher "Pratique" quel part n'importe ou sur le site dans la page.
Posté : 15 sept. 2006, 20:00
par graphistnet
Si tu ne veux pas utiliser l'ID il te suffit de passer la valeur du nom dans ton select dans cette ligne :
echo "<option value=\"".$id." \">".$nom."</option>";
que tu remplaces par :
echo "<option value=\"".$nom." \">".$nom."</option>";
ensuite dans ton url tu passes la valeur index.php?dest=<?php echo $infos; ?>
Pour les sessions tu fais une petite recherche sur le forum, le sujet a été traité moultes fois.
Posté : 15 sept. 2006, 21:01
par fabien_14
Vopila jai essayer de regarder le principe des Sessions
donc j'ai essayer ceci mais sa ne marche pas ... pour mettre le nom dans la sessions en fonctions de L'id du GET
<?php
$result = mysql_query("SELECT * FROM infos ORDER BY id");
$nb_total=mysql_num_rows($result);
if ($nb_total == 0) {
} else {
?>
<select name="infos" onChange="window.location.replace('index.php?dest='+this.value+'');">
<?
while($row = mysql_fetch_row($result)){
$id = $row[0];
$nom = $row[1];
echo "<option value=\"$id \"";
echo ">$nom </option>";
}
?>
</select>
<?
}
?>
<?
session_start() ;
if (isset($_GET['dest']))$infos=htmlentities($row['1']);
{
$infos= $row['1'];
$_SESSION['infos'] = $infos;
}
echo "$infos;
?>
Posté : 15 sept. 2006, 21:14
par Truc
Pense à utiliser les balises
pour du code PHP :roll:
Regarde bien ce que tu as écris... ce n'est pas un souci de session mais de syntaxe, construction du script...
Un peu de logique pour remettre de l'ordre et ça devrait aller mieux.
[quote]
if(condition)
{
instruction
}
else
{
autre_instruction
}[/quote]
Construction normale d'un test if()
Posté : 15 sept. 2006, 21:37
par fabien_14
Sa donne ceci alors
Code : Tout sélectionner
<?php
session_start();
if (isset($_GET['dest'])) $infos=htmlentities($row['1']);
{
$infos= $row['1'];
}
else
{
$_SESSION['infos'] = $infos;
}
?>
Mais ce soir je suis bigleux mais sa me met un parse error .... :s sur la ligne ou il y a "else"

Posté : 15 sept. 2006, 21:54
par charabia
if (isset($_GET['dest'])) $infos=htmlentities($row['1']);
{
Il y a comme un souci là non ?
Posté : 15 sept. 2006, 22:08
par fabien_14
A voui
Code : Tout sélectionner
<?php
session_start();
if (isset($_GET['dest'])) {
$infos=htmlentities($row['1']);
}
else
{
$_SESSION['infos'] = $infos;
echo "$infos";
}
?>
Mais sa ne m'affiche pas le nom apres avoir fait la selection dans le select du header ....
Posté : 15 sept. 2006, 22:26
par Truc
il n'y a plus d'erreur mais je doute que c'est exactement ce que tu voulais.
Un test conditionnel => if()else()
exécute soit
l'un soit
l'autre instruction.
Toi tu fait appel à une variable dans la 2eme instruction alors qu'elle est initialisée dans la 1ère instruction.
