requete d'un select reprendre valeur ....

Eléphant du PHP | 183 Messages

15 sept. 2006, 19:38

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

Eléphant du PHP | 184 Messages

15 sept. 2006, 19:49

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
Image

Eléphant du PHP | 183 Messages

15 sept. 2006, 19:52

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.
_________
Fabien

Eléphant du PHP | 184 Messages

15 sept. 2006, 20:00

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

Eléphant du PHP | 183 Messages

15 sept. 2006, 21:01

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;

?>
_________
Fabien

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

15 sept. 2006, 21:14

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

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 183 Messages

15 sept. 2006, 21:37

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" :shock:
_________
Fabien

Avatar du membre
ViPHP
ViPHP | 3008 Messages

15 sept. 2006, 21:54

if (isset($_GET['dest'])) $infos=htmlentities($row['1']); 
{ 
Il y a comme un souci là non ?

Eléphant du PHP | 183 Messages

15 sept. 2006, 22:08

A voui :oops:

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 ....
_________
Fabien

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

15 sept. 2006, 22:26

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. :?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute