Variables GET n'apparaissent pas dans l'URL

Derwann
Invité n'ayant pas de compte PHPfrance

22 mars 2012, 18:41

Bonjour tout le monde,

J'ai fait un formulaire avec une méthode GET, or quand je cliquer sur le bouton submit, les variables n'apparaissent pas dans l'URL.

J'ai : http://www.azzerrt.php
Au lieu de : http://www.azzerrt.php?variable1=blabla ... le2=blabla

Sauriez-vous me dire ce que je fais de mal ?

Le code est le suivant si vous en avez besoin
 <form name="filtre" method="GET" action="accordlabs.php">
<tr> 
<td><input type="hidden" name="CMD" value="<?php echo $_GET["CMD"]; ?>"> </td>
<td><INPUT  TYPE=TEXT  NAME="fitem" VALUE="<?php echo $_GET["fitem"]; ?>"></td>
<td><INPUT  TYPE=TEXT  NAME="flabo" VALUE="<?php echo $_GET["flabo"]; ?>"></td>
<td ><INPUT  TYPE=TEXT  NAME="fsubs" VALUE="<?php echo $_GET["fsubs"]; ?>"> </td>
<td><INPUT  TYPE=TEXT  NAME="fquanti" VALUE="<?php echo $_GET["fquanti"]; ?>"></td>	
<td><INPUT  TYPE=TEXT  NAME="frempla" VALUE="<?php echo $_GET["frempla"]; ?>"></td>
<td> <select name="fperia">
      <option value="''></option>
      <option value="1" <?php if($_GET["fperia"]==1) echo "selected"; ?>>1 semaine</option>
      <option value="2" <?php if($_GET["fperia"]==2) echo "selected"; ?>>1 mois</option>
      <option value="3" <?php if($_GET["fperia"]==3) echo "selected"; ?>>3 mois</option>
      <option value="4" <?php if($_GET["fperia"]==4) echo "selected"; ?>>6 mois</option>
      <option value="5" <?php if($_GET["fperia"]==5) echo "selected"; ?>>1 an</option>
      <option value="6" <?php if($_GET["fperia"]==6) echo "selected"; ?>>1 an</option>
       </select>
</td>
<td >< 
         <select   name="fetat" >
         <option value="" <?php if ($fetat=="") echo "selected";?>></option>
         <option value="a" <?php if ($_GET["fetat"]=='a') echo "selected";?> >Attente</option>
         <option value="c" <?php if ($_GET["fetat"]=='c') echo "selected";?> >Accord</option>
         <option value="r" <?php if ($_GET["fetat"]=='r') echo "selected";?> >Refus</option>
         </select>
</td>
<td>     <select  name="fperir" >
             <option value=''"></option>
             <option value="1" <?php if($_GET["fperir"]==1) echo "selected"; ?>> 1 semaine</option>
             <option value="2" <?php if($_GET["fperir"]==2) echo "selected"; ?>>1 mois</option>
             <option value="3" <?php if($_GET["fperir"]==3) echo "selected"; ?>>3 mois</option>
             <option value="4" <?php if($_GET["fperir"]==4) echo "selected"; ?>>6 mois</option>
             <option value="5" <?php if($_GET["fperir"]==5) echo "selected"; ?>>1 an</option>
             <option value="6" <?php if($_GET["fperir"]==6) echo "selected"; ?>>1 an</option>
           </select>
</td>
<td><input type="submit" value="Rechercher" ></td>
</tr>
</form> 

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

22 mars 2012, 18:50

Salut,

Tu veux dire que sur accordlabs.php tu n'a pas les variables dans l'url ?
Certain navigateur masque les variables d'url.

Lors du premier accès à ta page tu doit avoir des erreurs qui sont normales vu du tu utilise des index qui n'existe pas dans $_GET[].

À tu des messages d'erreurs ?
Quel est le code de validations du formulaire ?

@+
Il en faut peu pour être heureux ......

Derwann
Invité n'ayant pas de compte PHPfrance

23 mars 2012, 11:00

Oui en effet je n'ai pas les variables sur accordlabs.php et j'utilise FireFox en version 11.0

Non je n'ai pas de message d'erreur lorsque je charge la page mais effectivement ces index n'existent pas dans $_GET[] je pensais que dans ce cas là il retournait tout simplement la valeur NULL.

Ce qu'il faut savoir c'est que le formulaire est sur la page accordlabs donc quand on clique sur submit la page est sensée se réactualisée avec une création de ces index dans $_GET[]

ViPHP
xTG
ViPHP | 7331 Messages

23 mars 2012, 11:34

Modifies ton niveau d'erreur dans ton php.ini
Car selon ce que tu nous dis tu n'affiches pas toutes les erreurs (dont les warnings visiblement).

Cela dit à la soumission du formulaire tu devrais avoir en effet création de ces index.
Un var_dump() en tout début de fichier n'indique rien de tel ?

Derwann
Invité n'ayant pas de compte PHPfrance

23 mars 2012, 11:46

Je viens d'identifier l'erreur et vous n'aviez pas toutes les clefs en main pour la desceller. Mon formulaire était en fait à l'intérieur d'un autre formulaire, un peu comme ceci :

------Formulaire 1 avec POST --------

------Formulaire 2 avec GET --------


------Fin formulaire 2 avec son submit------

----Fin formulaire 1 avec son submit -----

Donc quand je clique sur le submit ça actionne le premier formulaire au lieu du deuxième.
Une idée sur comment faire cohabiter un formulaire à l'intérieur d'un autre ou c'est tout simplement pas possible ?

ViPHP
xTG
ViPHP | 7331 Messages

23 mars 2012, 12:02

Ce n'est pas possible. ;)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

23 mars 2012, 12:04

non, sépare les !

@+
Il en faut peu pour être heureux ......

ViPHP
ViPHP | 2577 Messages

23 mars 2012, 12:08

Si tu utilises un seul formulaire et que tu fais le traitement en fonction du bouton actionné ca doit marcher très bien. Via javascript tu peux également modifier l'attribut action du formulaire.
Autrement, il faut faire 2 formulaires disjoints.

Derwann
Invité n'ayant pas de compte PHPfrance

23 mars 2012, 12:23

Je pense être capable de les séparer mais je pense que je vais être amener à devoir ajouter un autre formulaire quand même à l'intérieur d'un autre or si c'est impossible je en sais pas comment faire. Je m'explique :

Image

Les zones colorées correspondent à des formulaires.
Ma page affiche dans un tableau des tuples d'items de ma base de donnée.

La zone verte est un filtre pour n'afficher que certains item c'est celui-ci qui utilise le GET et que j'ai donc sorti de la zone rouge.

La zone rouge sont des lignes (tuples) de ma base de donnée qui sont afficher, on peut en modifier les champs.

Les zones bleu sont des formulaires qui vont envoyer un mail au destinataire qui est dans sa ligne quand on pressera leur submit.

Comment éviter d'avoir les formulaires "bleu" dans le formulaire "rouge" dans ce cas là ?

ViPHP
xTG
ViPHP | 7331 Messages

23 mars 2012, 12:28

Et on formulaire pour envoyer un mail il contient beaucoup d'éléments ou juste des hidden et un bouton...
Car auquel cas remplaces le par un lien. ;)

Derwann
Invité n'ayant pas de compte PHPfrance

23 mars 2012, 12:33

Un lien ! Mais bien sûr ! C'est vrai que je n'y avais pas pensé, j'étais focalisé sur des formulaires ... En tout les cas merci beaucoup pour votre aide et le temps que vous y avez consacré ! :)