Recuperation de variable menu deroulant php

Fermé
kino76 - 9 nov. 2010 à 11:41
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 10 nov. 2010 à 08:56
Bonjour,

j'ai un petit soucie pour garder la variable de mon menu déroulant et l'envoyer vers une autre page
je m'explique
j'ai un menu déroulant me permettant de sélectionner des packs je voudrais garder la valeur sélectionner par l'utilisateur l'envoyer vers une autre page pour qu'une fonction l'utilise mais je n'arrive pas a faire passer la variable
voici les code des deux pages:
------- Menu Déroulant ----------
<?php
if(!mysql_connect('localhost','root'))
{
echo 'connextion impossible';
exit();
}
else
{
echo '';
}
mysql_select_db('explorer');


$requete="SELECT distinct association.num_pere FROM association where association.num_pere not in (select association.num_fils from association)";
$resultat=mysql_query($requete);
?>
<form method="POST" action="explorateur.php" name="explorateur pack">
<select name="fils">

<?php

while ($ligne=mysql_fetch_array($resultat))

{
echo "<option>".$ligne[0]."</option>\n";
}
?>
<p> <p> <input type="submit" name="ok" value="Envoyer" /></p>
</select>
</form>


<?php


mysql_close();
?>

--------------- page utilisant la fonction -----------------
<?
include 'affichagefils.php';
include 'basededonnee.php';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head><title>PACK </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
<META NAME="COPYRIGHT" CONTENT="© Clemessy">
<META HTTP-EQUIV="EXPIRES" CONTENT="0">
<link rel="StyleSheet" HREF="style.css" TYPE="text/css">
<link rel="stylesheet" href="simpletree.css" type="text/css"/>
</head>

<body bgcolor="#FFFFFF" leftmargin="0" topmargsin="0" marginwidth="0" marginheight="0" >
<script type="text/javascript" src="simpletreemenu.js"></script>
<ul Id ='explorerpack' class='treeview'>
<li>Module C
<ul>
<li>
<?php
connect();
global $pere;
AffListeFils($pere);
echo "$pere";
?>
</li>
</ul>
</li>

<li>Module B
<ul>
<li>
<?php
connect();
global $pere;
AffListeFils($pere);
?>
</li>
</ul>
</li>

<li>Module A
<ul>
<li>
<?php
connect();
global $pere;
AffListeFils($pere);
?>
</li>
</ul>
</li>
</ul>
<script type='text/javascript'>ddtreemenu.createTree('explorerpack', false)</script>
</body>
</html>
--------------------------------------
je voudrais que le choix dans le menu déroulant devienne la variable $pere sur la page utilisant la fonction...
...comment faire?
help please
A voir également:

2 réponses

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
9 nov. 2010 à 11:56
Bonjour,

Tu confonds deux choses : ce qui se passe côté client, et ce qui se passe côté serveur.

Le script PHP est exécuté côté serveur AVANT que le client n'ait la main. Donc, ta variable $pere NE PEUT PAS contenir le choix de ton utilisateur !

Quand le client a la main, il choisit son truc, clic sur le bouton. Là, le navigateur envoie l'élément choisi à la page explorateur.php dans les données POST (d'après la définition de ton formulaire).

Donc, dans ce fichier explorateur.php, tu peux récupérer la variable de cette façon :
$pere = (isset($_POST['fils'])) ? $_POST['fils'] : "valeur par défaut";

Si la page explorateur.php est la même que celle dont tu as donné le code source, alors il te suffit de placer ce code en haut de la page, avec les include. Et fais attention à la valeur par défaut, qui doit être celle d'origine (celle qui affiche la liste des pères)

Xavier
1
je suis d'accord mais le problème c'est que le menu déroulant n'envoie rien du tout dans le POST
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
9 nov. 2010 à 14:22
Ah oui, j'avais raté ça :

<p> <p> <input type="submit" name="ok" value="Envoyer" /></p>
</select>

Tu fermes ton <select> après l'input !
Et tu as un <p> en trop.
Donc remplace ces deux lignes par ça :

</select>
<p><input type="submit" name="ok" value="Envoyer" /></p>

Xavier
0
cela me fait une boucle sur la même page et n'envoie aucune donnée sur l'autre
0
<form method="POST" action="explorateur.php" name="explorateur pack">
<select name="fils">

<?php

while ($ligne=mysql_fetch_array($resultat))

{
echo "<OPTION VALUE=\"".$ligne[0]."\">".$ligne[0]."</OPTION>";
}
?>
<p> <p> <input type="submit" name="ok" value="Envoyer" /></p>
</select>
</form>


tu n'a pas de value dans ton option,
comme sa tu récupèrera une valeur.
0
Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
10 nov. 2010 à 08:56
Effectivement, j'avais pas les yeux bien ouverts hier !

(PS Peter, en minuscule le HTML, c'est la norme ;) )
0