Page 1 sur 1

envoyer donnees d'un formulaire dans url

Posté : 29 oct. 2009, 08:14
par b3f3
Bonjour,
Je suis conscient que mon problème est très basique mais malgré des heures de recherches, je ne trouve pas la solution.
Voici mon code :
<form method="get" action="index.php?page=pagex&id=<?php echo $_GET['id']; ?>">
<label for="id">Numéro :</label><input type="text" id="id" name="id"/>
<input type="submit" name="submit" value="Valider" />
</form>
Si par exemple je saisi 10007 dans mon formulaire, l'url obtenue est :
index.php?id=10007&submit=Valider
au lieu de :
index.php?page=pagex&id=10007
Qu'est ce que je n'ai pas compris ?
Merci.

Re: envoyer donnees d'un formulaire dans url

Posté : 29 oct. 2009, 09:47
par jojolapine
Pour pouvoir renvoyer des élements déjà présents dans ton url avec ton formulaire, il faut les ajouter en champs cachés, exemple:
<form method="GET" action="">
<?php
foreach($_GET as $key=>$value){
    echo '<input type="hidden" name="'.$key.'" value="'.$value.'" />';
}
?>
<!-- le reste du formulaire -->
</form>

Re: envoyer donnees d'un formulaire dans url

Posté : 29 oct. 2009, 09:58
par fab
La "method" de ton formulaire c'est GET donc tous les champs du formulaire vont se retrouver dans l'url. Si tu veux changer ça utilise la method POST, par contre pour récupérer les valeurs faudra que tu utilises le tableau $_POST et non plus le tableau $_GET

Re: envoyer donnees d'un formulaire dans url

Posté : 30 oct. 2009, 00:05
par b3f3
Pour pouvoir renvoyer des élements déjà présents dans ton url avec ton formulaire, il faut les ajouter en champs cachés, exemple:
<form method="GET" action="">
<?php
foreach($_GET as $key=>$value){
    echo '<input type="hidden" name="'.$key.'" value="'.$value.'" />';
}
?>
<!-- le reste du formulaire -->
</form>
Merci, j'ai réussi à mettre cela en oeuvre mais je souhaite maintenant savoir comment ajouter 2 champs cachés.
J'ai
<form method="get" action="index.php?page=praticiens&action=show&id=<?php  echo $_GET['id']; ?>">
Comment puis-je renvoyer l'élément page et l'élément action ?
Merci