2011-07-12 48 views
1

5秒後にquto javascriptを使用してフォーム変数を送信すると、次のフォームにはフォーム変数が渡されません。自動投稿フォームにはフォーム変数がありません

通常の投稿は正常に機能します。


<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>Test</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 

<SCRIPT LANGUAGE="JavaScript"><!-- 
setTimeout('document.test.submit()',5000); 
//--></SCRIPT> 

</head> 
<body> 
<form name="test" id="form1" method="post" action="auto2.php"> 
    <p> 
    <INPUT TYPE=checkbox NAME="test" VALUE="option1"> Option1 
    <INPUT TYPE=checkbox NAME="test" VALUE="option2"> Option2 
    <INPUT TYPE=checkbox NAME="test" VALUE="option3"> Option3 
    </p> 
    <p><input type="submit" name="submit_test" value="Submit_test" /> 
&nbsp; </p> 
</form> 
</body> 
</html> 
--------------------------------------------------------------- 

output page: 

-------------------------------------------------------------- 
<?php 

if(isset($_POST['submit_test'])){ 
$variable=$_POST['test']; 

echo $variable; 

} 

?> 

すべてのヘルプは高く評価されて..あなたに感謝。

+0

フォームのコードと提出方法を教えてください。 – phant0m

+1

ユーザーは単にチェックボックスの1つをチェックする時間がなかったのでしょうか? –

+0

もう一度編集しました。これは現在表示されています。 – Chinnappa

答えて

5

あなたはsubmit_testボタンの値が設定されているかどうかをテストしている:

if(isset($_POST['submit_test'])){ 

フォームを自動的に送信しても値は設定されないため、テストは失敗します。

隠し要素のような他のフォームフィールドをテストする必要があります。

+0

隠し要素を使用して試行します。いいえ変更、私は送信ボタンをクリックしたときにフォームは絶対に正常に動作しますが、Javascriptコードを使用して自動送信されたときは表示されません。 お試しいただきありがとうございます。 – Chinnappa

+0

@Chinnappa no、あなたの*テスト*は誘発しません。削除してください。それは動作します。 –

+0

NalumとPekkaに感謝してくれてありがとうございました。 私には解決策があります:) – Chinnappa

2

チェックボックスがチェックされていない限り、あなたは文句を言わない任意の応答(空白またはそれ以外)を取得あなたが代わりに持っている必要がありますどのような

はあなたのフォーム

を投稿する際にデフォルト値を取得

<input type=hidden name="test" value=""> 
<INPUT TYPE=checkbox NAME="test" VALUE="option1"> Option1 
<INPUT TYPE=checkbox NAME="test" VALUE="option2"> Option2 
<INPUT TYPE=checkbox NAME="test" VALUE="option3"> Option3 

その方法です

+0

の出力がまだ空白のフォームフィールドを追加しました。 var_dumpは何も表示しません。 ありがとうございます。 – Chinnappa

0

+1ペッカの答えです。

これを行うと、投稿に変数が設定されていなくてもページが投稿されたことが確認されます。

if ($_SERVER['REQUEST_METHOD'] === 'POST') { ... } 

また、予想された場所からのものであることを確認するために、何らかの形で検証する必要があります。

関連する問題