Variable formulaire ne passe pas dans URL

cs_deodato Messages postés 12 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 23 avril 2009 - 11 mars 2009 à 10:07
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 - 11 mars 2009 à 23:06
bonjour à tous, apres pas mal de jour à me casser la tête je me décide à faire appel à vous. Voici mon problème.
j'ai un formulaire comme suit :
<form method="POST" class="search" action="index.php?pg=Rechercher&table=gamp_societe&cherche=">
           
            "/>
             
           

        </form>
le probleme est que lorsque je tapes un mot dans ma textbox, elle ne passe pas dans l'url et ne m'affiche rien.
Mon script passe bien puisque lorsque je rajoute un mot à la fin d emon url (cherche=toto) il me trouve bien ma ligne toto.
J'ai tout essayé : $_GET....$_POST
Il faut savoir que je suis en localhost sur un serveur apache.
merci pour votre aide

Deodato un petit debutant

3 réponses

cs_mike1310 Messages postés 232 Date d'inscription jeudi 30 août 2007 Statut Membre Dernière intervention 31 juillet 2009
11 mars 2009 à 12:30
La je t'avouerais que tu mélange un peu tout ...

Ton formulaire est déclaré en POST donc ton action ne devrait pas comporter de ? à la suite du nom de ta page.
Si tu veux passer des champs comme "Rechercher" ou "gamp_societe", utilise des champs hidden :

ex :
<form method="POST" class="search" action="index.php">
    "/>
   
   
</form>

Et tu récupère ensuite dans ta page index.php avec la variable $_POST. Ex:

echo $_POST["pg"] ;  //Sa va t'afficher 'Rechercher'
0
cs_deodato Messages postés 12 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 23 avril 2009
11 mars 2009 à 13:12
Merci Mike pour ton explication. Entre temps, j'ai trouvé une astuce en javascript. Mais je vais tester la tienne.
Encore un grand merci

Deodato un petit debutant
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
11 mars 2009 à 23:06
Salut,

Juste quelques précisions pour tenter de clarifier :

un formulaire avec method= "get" :
   => passage des variables dans l'url, par exemple :
   http://www.monsite.com/index.php?cherche=machinchose
   recupération côté php avec $_GET['cherche'];

un formulaire avec method="POST" :
   => passage des variables dans les headers de la requête HTTP
   invisible pour l'utilisateur
  récupération avec $_POST['cherche'];

le probleme est que lorsque je tapes un mot dans ma textbox, elle ne passe pas dans l'url et ne m'affiche rien.
=> donc normal qu'elle ne passe pas dans l'url, il faut la récupérer par $_POST['cherche'] (invisible dans l'url, sinon utiliser méthode GET)
Si elle a été renseignée dans ton formulaire il n'y a pas de raison qu'elle ne passe pas (enfin, d'après le code que tu donnes)

Ton formulaire est déclaré en POST donc ton action ne devrait pas comporter de ? à la suite du nom de ta page.
=> J'imagine que c'est ce que tu voulais dire Mike, mais ça peut porter à confusion :
On peut très bien faire pointer le form sur une url avec passage de variables en GET si le form est en POST, ce qui n'est pas vrai s'il est en GET.
Le script de deodato doit fonctionner, à condition de récupérer cherche via POST et pas GET

Cordialement,

Kohntark -
0
Rejoignez-nous