2017-12-04 15 views
-2

基本的に、JavaScriptを使用していくつかのフォーム要素を送信しようとしています。しかしJavaScriptがフォームを送信しないのはなぜですか?

<form method="post" action="opmod.php" name="gender"> 
<p class="type">Gender:</p> 
<input list="genderList" required> 
<datalist id="genderList"> 
    <option value="Male"></option> 
    <option value="Female"></option> 
</datalist> 
</input> 
</form> 
<form method="post" action="opmod.php" name="race"> 
<p class="type">Race:</p> 
<input list="raceList" required> 
<datalist id="raceList"> 
    <option value="White"></option> 
    <option value="Black"></option> 
    <option value="Asian"></option> 
    <option value="Hispanic"></option> 
    <option value="American Indian"></option> 
    <option value="Other"></option> 
</datalist> 
</input> 
</form> 

、私はそれを提出し、このスクリプトを使用する場合、何も起こりません:ここではフォーム自身のためのコードがある

私はまた、フォームに「ID」を追加することによって、それを試してみました
submitInp=function(){ 
    document.forms["state"].submit(); 
    document.forms["age"].submit(); 
    document.forms["gender"].submit(); 
    document.forms["race"].submit(); 
    document.cookie="infoGiven=true;expires="+(today.getTime() + 60 * 24 * 3600 * 1000)+";path=/"; 
} 

それらの要素を "document.getElementById"で取得して送信しますが、何も機能しません。私の問題は何ですか?どうすれば解決できますか?

+2

をとすぐ最初の形式(「状態」)が提出するよう、ページがPOSTを経由してopmod.php' 'に移動します(つまり、アクションだと仮定するとおよびその方法のための方法)。ページがナビゲートされているため、他のフォームは提出されません – Phil

+1

さまざまな入力をすべて1つのフォームだけにしたくないですか? ''要素に 'name'属性を追加するだけです。 – Phil

答えて

1

最初のフォームを送信した後にopmod.phpにナビゲートする複数を使用する代わりに、1つのフォームを使用できます。

<form method="post" action="opmod.php" name="data" id="data"> 
    //Put your inputs here 
    //state inputs 
    //age inputs 
    //gender inputs 
    //race inputs 
</form> 

とちょうど使用あなたのJavaScriptで:

document.getElementById("data").submit(); 
+0

これは何を提出しますか? $ _POST ["data"]は何を返しますか? – Damphair

+0

あなたの 'inputs'の@Damphairは' name'を追加します。例:name = "genderList"フォームを送信した後、 'print_r'または' $ _POST'を 'vardump'してみてください。データが提出されたかどうかがわかります。 – Bluetree

+0

入力を入れて送信した後、$ _POST ['state']をエコーし​​ようとしましたが、何も得られません。 $ _POST ['state']が定義されていないというエラーだけです。何故ですか?私はあなたが言ったように名前を追加しました。 – Damphair