Methode POST avec un lien

Eléphant du PHP | 424 Messages

20 sept. 2006, 14:47

Bonjour,

Est ce que vous pouvez m'indiquer comment passer des données par la methode POST avec un lien ... et non un bouton !

merci d'avance
Youpi Youpi Yo !

Petit nouveau ! | 7 Messages

20 sept. 2006, 14:57

les parametres passé dans une url se recupere forcement par un GET
pour utiliser un POST il faut un formulaire.

Eléphant du PHP | 424 Messages

20 sept. 2006, 15:07

Oui je suis d'accord mais est ce que via un formulaire je peux passer une valeur par la méthode POST en cliquant sur un lien et non un bouton ?

Merci
Youpi Youpi Yo !

Avatar du membre
ViPHP
ViPHP | 3008 Messages

20 sept. 2006, 15:18

Avec un tit javascript :

Code : Tout sélectionner

<a href="javascript:document.nomduformulaire.submit()">Valider</a>

Eléphant du PHP | 424 Messages

20 sept. 2006, 16:48

Ok !

Donc j'ai procédé comme suit mais il m'affiche toujours le derniere enregistrement de mon tableau !!
<td align="center" valign="middle"><form name="form3" method="POST" action="liste_demandes.php"><input name="iddoc" type="hidden" value="'.$selectdip["iddoc"].'"><a href="javascript:document.form3.submit()">'.$selectdip["iddoc"].'</a></form></td>
Pourquoi ? merci pour votre aide
Youpi Youpi Yo !

Petit nouveau ! | 7 Messages

20 sept. 2006, 16:52

que doit faire ton bout de script ???

Eléphant du PHP | 424 Messages

20 sept. 2006, 16:54

M'ouvrir liste_demandes.php en passant comme valeur iddoc par la methode POST.
Ensuite je récupere cette valeur et je la traite.
Youpi Youpi Yo !

Petit nouveau ! | 7 Messages

20 sept. 2006, 16:57

quand tu affiches la source html de ton code (avant validation) tu as bien une valeur dans value="???" de iddoc ?

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

20 sept. 2006, 16:59

Ca serait pas plus simple de la passer en get et de gerer les deux possibilités pour récupérer la valeur (get et post) dans ton script liste_demandes.php ?
$valeur = isSet($_POST['iddoc']) ? $_POST['iddoc'] : (isSet($_GET['iddoc']) ? $_GET['iddoc'] : $defaut);
Sinon, si le problème vient du fait que tu n'es pas redirigé vers la page liste_demandes.php, essaye de mettre le lien comme ceci :

Code : Tout sélectionner

<a href="javascript:void(0)" onClick="javascript:document.nomduformulaire.submit()">Valider</a>

Eléphant du PHP | 424 Messages

20 sept. 2006, 17:07

non je suis bien redirigé vers ma page ! mon probleme c'est que la valeur de iddoc est toujours la derniere de mon tableau !!

Par exemple j'ai un tableau avec :

21 Dominique
48 Jean

la valeur de iddoc est toujours 48 ... meme si je clic sur 21...

je ne comprend pas pourquoi ?!
Youpi Youpi Yo !

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

20 sept. 2006, 17:12

Je pense que le problème vient du fait que tu as plusieurs <td> et donc plusieurs <form>
et que tu utilises le même nom pour tous les formulaires

Il faut donner des noms différents de formulaires et spécifier le bon nom de form dans les submit()

Exemple :
si la production des <td> est automatisée dans une boucle PHP,
il faut utiliser un compteur de form (dans l'exemple c'est $i)
$i = 1; //initialiser un compteur de form

...
<td align="center" valign="middle">
<form name="form'.$i.'" method="POST" action="liste_demandes.php">
<input name="iddoc" type="hidden" value="'.$selectdip["iddoc"].'">
<a href="javascript:document.form'.$i.'.submit()">'.$selectdip["iddoc"].'</a>
</form>
</td> 
...

$i++; //incrémenter le compteur
ps: Attention, remplaces "javascript& #058;" par "javascript:"
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène