[PHP] passage de variables dans URL
rasteda
Messages postés
34
Date d'inscription
Statut
Membre
Dernière intervention
-
moderno31 Messages postés 872 Date d'inscription Statut Membre Dernière intervention -
moderno31 Messages postés 872 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaite passer 2 variables dans une url ($rubrique et $sousrub). je les récupère de ma base de données depuis deux menus déroulants mais à la validation seulement une de mes variables passe dans l'url et pas la seconde ?
Quelqu'un aurait-il une piste ?
merci beaucoup.
Je souhaite passer 2 variables dans une url ($rubrique et $sousrub). je les récupère de ma base de données depuis deux menus déroulants mais à la validation seulement une de mes variables passe dans l'url et pas la seconde ?
Quelqu'un aurait-il une piste ?
merci beaucoup.
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Administration</title> </head> <body> <? //include the connect script include("infos.inc"); $connection = mysql_connect($host,$user,$password) or die ("Connexion au serveur impossible"); $db = mysql_select_db($database,$connection) or die ("Sélection de la base de données impossible"); echo "<form action='select02.php' enctype='multipart/form-data' method='post' id='choixrub'>"; $query = "SELECT DISTINCT intitule FROM tbl_rub ORDER BY intitule DESC"; $result = mysql_query($query) or die("ERROR"); $Selected = 0; ?> <select name='rubrique' style='min-width:250px;' onchange='document.forms["choixrub"].submit();'> <? echo "<option disabled='disabled' SELECTED>Séléctionnez une rubrique :</option>"; while ($row = mysql_fetch_array($result)) { if($Selected == 0) { echo '<option value="', $row[0], '" ">', $row[0], '</option>'; $Selected = 1; } else { echo '<option value="', $row[0], '">', $row[0], '</option>'; } } echo '</select></form>'; if (isset ($_POST['rubrique'])){ $rubrique = $_POST['rubrique']; } //formulaire choix sous-rubrique echo "Rubrique s séléctionnée: $rubrique</br>";?> <? echo "<form action='select02.php?rub=$rubrique&ssrub=$sousrub' enctype='multipart/form-data' method='post' id='choixssrub'>"; $query = "SELECT intitule FROM tbl_ssrub WHERE rub_asso='$rubrique'"; $result = mysql_query($query) or die("ERROR"); ?> <select name='sousrub' style='min-width:250px;'> <? $Selected = 0; echo "<option disabled='disabled' SELECTED> Séléctionnez une sous-rubrique :</option>"; while ($row = mysql_fetch_array($result)) { if($Selected == 0) { echo '<option value="', $row[0], '" ">', $row[0], '</option>'; $Selected = 1; } else { echo '<option value="', $row[0], '">', $row[0], '</option>'; } } echo "</select><br/></br><input type='submit' value='Soumettre'/><br></form></br></br>"; ?> </body> </html>
A voir également:
- [PHP] passage de variables dans URL
- Url - Guide
- Passage qwerty azerty - Guide
- Easy php - Télécharger - Divers Web & Internet
- Comment changer url iptv - Forum Créer un site
- Atlas pro url serveur invalide - Forum TV & Vidéo
10 réponses
hello bonne année
tu n'as pas déclaré ta seconde variable.
$rubrique = $_POST['rubrique']; ça ok
L'autre tu as oublié.
Donc normal que tu ne récupère pas/.
tu n'as pas déclaré ta seconde variable.
$rubrique = $_POST['rubrique']; ça ok
L'autre tu as oublié.
Donc normal que tu ne récupère pas/.
eh beh l'année commence bien!! merci de ton aide ;-)
Bonne année à toi également
J'ai bien tenté de la déclarer mais je vois pas trop ou. après le dernier </select> non ?
Quelquechose comme ça ?:
Bonne année à toi également
J'ai bien tenté de la déclarer mais je vois pas trop ou. après le dernier </select> non ?
Quelquechose comme ça ?:
<select name='sousrub' style='min-width:250px;'> <? $Selected = 0; echo "<option disabled='disabled' SELECTED> Séléctionnez une sous-rubrique :</option>"; while ($row = mysql_fetch_array($result)) { if($Selected == 0) { echo '<option value="', $row[0], '" ">', $row[0], '</option>'; $Selected = 1; } else { echo '<option value="', $row[0], '">', $row[0], '</option>'; } } echo "</select><br/></br>"; if (isset ($_POST['sousrub'])){ $sousrub = $_POST['sousrub']; } echo "<input type='submit' value='Soumettre'/><br></form></br></br>"; ?>
Avec le nouveau code ça ne passe pas non plus.
Je ne comprends pas bien ou ma variable doit être déclarée pour qu'elle soit reconnue.
BONNE ANNEE A TOUS !!!
Je ne comprends pas bien ou ma variable doit être déclarée pour qu'elle soit reconnue.
BONNE ANNEE A TOUS !!!
comment ça ?
Tu as fait ça ?
if (isset ($_POST['rubrique'],$_POST['sousrubrique'])){
$rubrique = $_POST['rubrique'];
$sousrub = $_POST['sousrubrique'];
...
Sinon montre cette partie du code. Si ça ne fonctionne toujours pas c'est que ta donnée en provenance du formulaire $_POST['sousrubrique'] revient vide !
Donc l'erreur provient du formulaire.
Tu as fait ça ?
if (isset ($_POST['rubrique'],$_POST['sousrubrique'])){
$rubrique = $_POST['rubrique'];
$sousrub = $_POST['sousrubrique'];
...
Sinon montre cette partie du code. Si ça ne fonctionne toujours pas c'est que ta donnée en provenance du formulaire $_POST['sousrubrique'] revient vide !
Donc l'erreur provient du formulaire.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
En fait j'ai un peu modifié mon code pour mettre un champ hidden
A priori ca fonctionne.
Ca donne ca:
Maintenant le souci pour moi c'est de faire en sorte que la séléction soit conservé après la soumission :-)
C'est jamais simple la programmation. Surtout pour moi !!
A priori ca fonctionne.
Ca donne ca:
<form action="select_prod.php" method="post" id="choixrub"> <? $query = "SELECT DISTINCT intitule FROM tbl_rub ORDER BY intitule ASC"; $result = mysql_query($query) or die("ERROR"); ?> <fieldset> <p> <label>Séléctionnez une rubrique</label> <select name="rubrique" class="small-input" onchange='document.forms["choixrub"].submit();'> <? echo "<option disabled='disabled' SELECTED>Rubriques ----------</option>"; while ($row = mysql_fetch_array($result)) { echo '<option value="', $row[0], '">', $row[0], '</option>'; } ?> </select> </p> </form> <? $rubrique = $_POST['rubrique']; echo "Vous avez séléctionné la rubrique: <strong>$rubrique</strong>"; ?> <form action="result_select.php" method="post" id="choixssrub"> <? $query = "SELECT intitule FROM tbl_ssrub WHERE rub_asso='$rubrique'"; $result = mysql_query($query) or die("ERROR"); ?> <input type="hidden" name="rubrique" value="<?php echo $rubrique ; ?>" /> <p> <br> <br> <label>Séléctionnez une sous-rubrique</label> <select name="sousrub" class="small-input"> <? echo "<option disabled='disabled' SELECTED>Sous-rubriques ----------</option>"; while ($row = mysql_fetch_array($result)) { echo '<option value="', $row[0], '">', $row[0], '</option>'; } ?> </select> </p> <br /> <p> <input class="button" type="submit" value="Soumettre" /> </p> </fieldset> </form>
Maintenant le souci pour moi c'est de faire en sorte que la séléction soit conservé après la soumission :-)
C'est jamais simple la programmation. Surtout pour moi !!
non c'est jamais simple la programmation c'est bien pour ça que je déteste ça. Mais j'en fait un peu quand même !
Déjà je vois un truc bizarre, tu ouvres 2 fois la balise formulaire pour afficher 2 input différents. Pas normal, tu n'as pas du comprendre le mécanisme.
L'idée est d'avoir un formulaire qui récupère les infos et qui sert à faire le traitement php par ex.
<form action="result_select.php" method="post">
-fait une seule requête pour récupérer les 2 infos. Je ne sais pas comment est structurée tes tables, mais tu va taper dans la même table donc c'est dommage de faire 2 req.
-appose tes input comme tu l'as déjà fait (merge les en un seul formulaire)
-Enfin tu mets ton bouton input type submit à la fin comme tu as déjà fait.
</form>
Normal que tu ne récupères pas l'info du 2nd parce qu'il est dans une autre balise de formulaire. Sinon, par logique il te faut 2 boutons parce que 2 formulaires !
Déjà je vois un truc bizarre, tu ouvres 2 fois la balise formulaire pour afficher 2 input différents. Pas normal, tu n'as pas du comprendre le mécanisme.
L'idée est d'avoir un formulaire qui récupère les infos et qui sert à faire le traitement php par ex.
<form action="result_select.php" method="post">
-fait une seule requête pour récupérer les 2 infos. Je ne sais pas comment est structurée tes tables, mais tu va taper dans la même table donc c'est dommage de faire 2 req.
-appose tes input comme tu l'as déjà fait (merge les en un seul formulaire)
-Enfin tu mets ton bouton input type submit à la fin comme tu as déjà fait.
</form>
Normal que tu ne récupères pas l'info du 2nd parce qu'il est dans une autre balise de formulaire. Sinon, par logique il te faut 2 boutons parce que 2 formulaires !
En fait ma logique un peu tordue c'était puisqu'on va chercher 2 infos différents à deux moments différents, je crée un formulaire pour chaque info à récupérér.
Dans mon premier formulaire j'ai un
onchange='document.forms["choixrub"].submit();
qui me permet de valider et d'afficher dans un second temps l'info dans le second menu.
Ce que je veux éviter c'est que les infos s'affichent toutes en même temps dans les 2 menus. c'est d'ailleurs impossible puisqu'on a besoin d'une sélection sur le premier menu (rubriques) pour afficher les infos du second
(sous-rubriques de la rubrique sélectionnée). Tout se passe donc en 2 étapes.
Je ne vois pas trop comment réaliser ces 2 étapes dans un même formulaire.
Dans mon premier formulaire j'ai un
onchange='document.forms["choixrub"].submit();
qui me permet de valider et d'afficher dans un second temps l'info dans le second menu.
Ce que je veux éviter c'est que les infos s'affichent toutes en même temps dans les 2 menus. c'est d'ailleurs impossible puisqu'on a besoin d'une sélection sur le premier menu (rubriques) pour afficher les infos du second
(sous-rubriques de la rubrique sélectionnée). Tout se passe donc en 2 étapes.
Je ne vois pas trop comment réaliser ces 2 étapes dans un même formulaire.
je ne te suis plus là.
Tu peux me dessiner ou schématiser ta page de formulaires ?
Sinon passe moi le code complet
Là comme ça je ne vois pas ce que ça donne
Tu veux faire un enchainement de listes de choix ? On clique un item de la premiere puis la seconde se charge avec les infos associées ?
Tu peux me dessiner ou schématiser ta page de formulaires ?
Sinon passe moi le code complet
Là comme ça je ne vois pas ce que ça donne
Tu veux faire un enchainement de listes de choix ? On clique un item de la premiere puis la seconde se charge avec les infos associées ?
c'est exactement ca.
j'ai un enchainement de deux sous-menu.
Le premier liste les rubriques du site
Le second liste les sous-rubriques de la rubrique séléctionnée dans le premier menu.
Voici mon code:
j'ai un enchainement de deux sous-menu.
Le premier liste les rubriques du site
Le second liste les sous-rubriques de la rubrique séléctionnée dans le premier menu.
Voici mon code:
<form action="add_prod.php" method="post" id="choixrub"> <? $query = "SELECT DISTINCT intitule FROM tbl_rub ORDER BY intitule ASC"; $result = mysql_query($query) or die("ERROR"); ?> <fieldset> <p> <label>Séléctionnez une rubrique</label> <select name="rubrique" class="small-input" onchange='document.forms["choixrub"].submit();'> <? echo "<option disabled='disabled' SELECTED>Rubriques</option>"; while ($row = mysql_fetch_array($result)) { echo '<option value="', $row[0], '">', $row[0], '</option>'; } ?> </select> </p> </form> <? $rubrique = $_POST['rubrique']; echo "Vous avez séléctionné la rubrique: <strong>$rubrique</strong>"; ?> </p> <form action="validate_add_prod.php" method="post"> <? $query = "SELECT intitule FROM tbl_ssrub WHERE rub_asso='$rubrique'"; $result = mysql_query($query) or die("ERROR"); ?> <input type="hidden" name="rubrique" value="<?php echo $rubrique ; ?>" /> <p> <br> <label>Séléctionnez une sous-rubrique</label> <select name="sousrub" class="small-input"> <? echo "<option disabled='disabled' SELECTED>Sous-rubriques</option>"; while ($row = mysql_fetch_array($result)) { echo '<option value="', $row[0], '">', $row[0], '</option>'; } ?> </select> </p> <p> <input class="button" type="submit" value="Soumettre" /> </p> </fieldset> </form>