OVH Cloud OVH Cloud

Submit JavaScript et method POST

3 réponses
Avatar
thatsme
Bonjour,
Je travaille sur une page contenant deux formulaires:
l'un est affichable, le second est un formulaire caché
<form name="dnsbefrm1" action="javascript:doTX()">
<cut_a_lot_of_input />
<input type="submit" value="Etape suivante" />
</form>

doTX est une fontion JavaScript effectuannt une pré-validation des
enrées utilisateur.
function doTX()
{
// un tas d'appels à des fonctions de validation
var content = mkForm();
document.tx.dnsbeform.value = content;
document.tx.submit();
return;
}

<!-- formulaire caché -->
<form name="tx" action="/monscript.php">
<input name="dnsbeform" value="" type="hidden" method="POST" />
</form>

Il se fait que la soumission du formulaire principal fait
systématiquement un lien vers une page avec les données en GET
(le contenu de content apparaît sur la barre d'adresse)

Quelqu'un a-t-il une idée de l'origine de ce phénomène.

Par ailleur le code suivant fonctionne correctement:
<html>
<head>
<title>Example Post</TITLE>
<SCRIPT>
function addtoken() {
document.myform.token.value="0a37847ea23b984012";
document.myform.submit();
}
function doIT()
{
alert(document.myform.ItemName.value);
s='';
s= s + document.myform.ItemName.value;
document.doIT.theValue.value = s ;
document.doIT.submit();
}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="myform" ACTION="javascript:doIT()" METHOD="POST">
<INPUT TYPE="TEXT" NAME="ItemName" value="<?php echo
$_POST['theValue'] ; ?>" />Item Name<BR>
<input type="hidden" name="token" />
<INPUT TYPE="BUTTON" VALUE="SUBMIT" onClick="addtoken()" />
</FORM>

<form name="doIT" action="token.php" method="post">
<input type="hidden" name="theValue" value="" />
</form>
</BODY>
</HTML>

Merci d'avance por toute suggestion...

Johan

3 réponses

Avatar
Pierre Goiffon
thatsme wrote:
<form name="dnsbefrm1" action="javascript:doTX()">
(...)

doTX est une fontion JavaScript effectuannt une pré-validation des
enrées utilisateur.
function doTX()
{
// un tas d'appels à des fonctions de validation
var content = mkForm();
document.tx.dnsbeform.value = content;
document.tx.submit();
return;
}

<!-- formulaire caché -->
<form name="tx" action="/monscript.php">
<input name="dnsbeform" value="" type="hidden" method="POST" />
</form>

Il se fait que la soumission du formulaire principal fait
systématiquement un lien vers une page avec les données en GET


Je suis assez surpris de l'écriture ?

J'aurais plutôt fait quelque chose comme :

<form name="dnsbefrm1" action="" onSubmit="return doTX()">

function doTX()
{
...
document.tx.submit();
return false;
}

Histoire d'éviter que le premier formulaire soit soumis.

Avatar
Eric

<!-- formulaire caché -->
<form name="tx" action="/monscript.php">
<input name="dnsbeform" value="" type="hidden" method="POST " />
</form>


method="POST" doit être un attribut de la balise <form> pas de <input>

d'ailleurs, récemment, j'ai appris que normalement, get et post
devaient s'écrire en minuscules (en XHMTL transitional, tout du
moins.)

Eric

Avatar
Pierre Goiffon
Eric wrote:
d'ailleurs, récemment, j'ai appris que normalement, get et post
devaient s'écrire en minuscules (en XHMTL transitional, tout du
moins.)


En XHTML (servit tel quel) en fait :
http://www.w3.org/TR/xhtml1/#h-4.2