Page 1 sur 1

Menu de reroutage et recuperation de variable

Posté : 23 déc. 2007, 16:13
par Nad21
Bonjour
Voici des heures que j'essai de resoudre un pb qui doit etre mega simple
j'essai de recuperer un variable d'un champs caché d'un menu de reroutage
Voici le code, bien sur j'ai le javascript pour le jumpmenu
merci de votre aide
Nadege
 <? echo "la variable caché a une valeur de $valid"; 
if ($valid=="1") { 
echo "ca marche"; 
} ?> 
<form name="form1"> 

<select name="menu1" onChange="MM_jumpMenu('parent',this,0)"> 
<option >Nos différents formats</option> 
<option value="poubelle.php">unnamed1</option> 
<option value="poubelle.php">unnamed2</option> 
<option value="poubelle.php">unnamed3</option> 
</select> 
<input type="hidden" name="valid" value="1"> 
</form>

Posté : 23 déc. 2007, 16:50
par Aureusms
Je ne sais pas trop mais aurais tu un $_GET ou $_POST manquant ? genre $_GET["valid"] ?

Posté : 23 déc. 2007, 17:55
par dunbar
Salut

Comme ceci peut-être :?:

Ton formulaire
<form name="" action="traitement.php" method="post">
<select name="menu1" onChange="MM_jumpMenu('parent',this,0)">
<option >Nos différents formats</option>
<option value="poubelle.php">unnamed1</option>
<option value="poubelle.php">unnamed2</option>
<option value="poubelle.php">unnamed3</option>
</select>
<input type="hidden" name="valid" value="1">
<input type="submit" value="Send">
</form>
Et le fichier traitement.php
<?php
$valid = $_POST['valid'];
echo "la variable caché a une valeur de ".$valid;
if ($valid=="1") {
echo "ca marche";
}
?>

Posté : 23 déc. 2007, 20:56
par Invité
Merci mais le probleme c 'est que je veux un menu de reroutage pas de bouton submit

Posté : 23 déc. 2007, 20:58
par dunbar
Merci mais le probleme c 'est que je veux un menu de reroutage pas de bouton submit
Et bien à la place de traitement.php ce sera poubelle.php

Posté : 23 déc. 2007, 21:07
par Invité
Non ca marche pas
j'ai l'impression que la page ne se recharge pas, des qu ej mets un bouton submit ca fonctionne et sans ca fonctionne pas
une idée??
merci
Nadege

Posté : 24 déc. 2007, 10:12
par Aureusms
Essaye dans ton code avec Javascript activé :
<? echo "la variable caché a une valeur de $valid"; 
if (isset($_POST["valid"]) && $_POST["valid"] =="1") { //si valid est bien postée et = 1
echo "ca marche"; 
} ?>

<form name="form1" metho="POST" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> 

<select name="menu1" onChange="onchange="submit();> 
<option >Nos différents formats</option> 
<option value="poubelle.php">unnamed1</option> 
<option value="poubelle.php">unnamed2</option> 
<option value="poubelle.php">unnamed3</option> 
</select> 
<input type="hidden" name="valid" value="1"> 
</form>
Je te conseille quand même de mettre un bouton submit si l'utilisateur n'a pas Javascript activé. (beaucoup de paranoïac le désactive)

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Posté : 24 déc. 2007, 11:28
par Invité
merci ca marche (j'ai enlever un eonchange en trop)
j'ia pas trop compris ce que tu avais fait
on change submit, c'est l'equivalent d'un buton submit c 'est ca?
merci en tout cas
joyeux noel
Nadege

autre question

Posté : 24 déc. 2007, 14:44
par Invité
Bonjour
je suis toujours sur mon formulaire j'espere ne pas y passer mon noel
Mon formualire de reroutage fonctionne
il est dynamique, les champs <option> se remplissent par reference
c'est a dire que toutes les references ZDN001 sont prises en compte
ZDN001A-ZDN001B-ZDN001C.....

Je voudrais ajouter la balise html <selected> de facon dynamqiue
c'est a dire quand je choise
ZDN001A ca me racharge la page et que la ref ZDN001A soit selected dans mon menu
mais la je bloque
sachant que toutes mes reférences ont un numero d'id unique
est ce clair
merci de votre aide
Nadege

Posté : 24 déc. 2007, 15:31
par iclo
Si tu génères tes options de la liste dans une boucle, il te suffit de tester les valeurs, si la valeur courante ajoutée à la liste, est également à celle sélectionnée précédement, tu ajoutes l'attribut selected.

Posté : 24 déc. 2007, 16:09
par Kaoteknik
Bonjour,

ce que tu demandes est possible, mais en ce qui me concerne je ne connais qu'une méthode (un peu fastidieuse). Il s'agit, dans ton script contenant le formulaire, d'ajouter des instructions conditionnelles en relation avec chacune des balises <option>. Comme ceci :
<?php

$ok = (isset($_POST["valid"]) && $_POST["valid"] == "1") ? "Ca marche !" : "";
echo $ok;

$unnamed1 = (isset($_POST['menu1']) && $_POST['menu1'] == "choix1") ? "selected=\"selected\"" : "";
$unnamed2 = (isset($_POST['menu1']) && $_POST['menu1'] == "choix2") ? "selected=\"selected\"" : "";
$unnamed3 = (isset($_POST['menu1']) && $_POST['menu1'] == "choix3") ? "selected=\"selected\"" : "";

?>

<form method="POST" action="<?php echo $PHP_SELF ?>">
	<select name="menu1" onChange="MM_jumpMenu('parent',this,0)">
		<optgroup>Nos différents formats</optgroup>
			<option value="choix1" <?php echo $unnamed1 ?>>choix1</option>
			<option value="choix2" <?php echo $unnamed2 ?>>choix2</option>
			<option value="choix3" <?php echo $unnamed3 ?>>choix3</option>
	</select>
	
	<input type="hidden" name="valid" value="1">  
</form>
Edit : il est sûrement possible de simplifier ce code en utilisant une boucle au lieu de la suite d'instructions conditionnelles que j'ai proposé... Je me pencherais sur le sujet, mais en attendant je vous souhaite un bon réveillon et un joyeux noël ! :wink:

Posté : 24 déc. 2007, 17:23
par Aureusms
Détournes la difficulté, utilise encore l'option OPTGROUP dans HTML. Essaye d'insérer ceci entre <select> et </select>, cela te fais un rappelle des tes options
<?php
if (isset($_POST["menu1"]))
   {
   echo '<option value="'.$_POST["menu1"].'">'.$_POST["menu1"].'</option>';
   echo '<optgroup label="--------------">';
   }
else
   {
   echo '<optgroup>Nos différents formats</optgroup>';
   }
?>
            <option value="choix1" <?php echo $unnamed1 ?>>choix1</option>
            <option value="choix2" <?php echo $unnamed2 ?>>choix2</option>
            <option value="choix3" <?php echo $unnamed3 ?>>choix3</option>

<?php
if (isset($_POST["menu1"]))
   {
   echo '</optgroup>';
   }
?>
J'ai prix menu1 par exemple....

Posté : 27 déc. 2007, 10:49
par Invité
merci de votre aide
je regarde ca de plus pres
le probleme c'est que mes unamed 1,2................. sont généré dynamiquement
donc je peux pas mettre ce genre de truc
mais bon je m'y penche j'ai juste regarder en vitesse
bonne journée
Nadege