2016-05-16 6 views
0

私はjavascriptには新しく、javascriptとphpを使って複数のsubmit関数でFormを更新しています。アラートは表示できますが、ページが更新されて転送されないたびに新しいページに転送するのではなく、
私のJavaスクリプト:複数の送信javascript - ページが更新されています

<script> 
function submitFunction(i) 
{ 
    if(i==1){ 
     alert("Transferring to page1.php"); 
     document.flight_select.action="page1.php"; 
     document.flight_select.submit(); 
    } 
    if(i==2){ 
     alert("Transferring to searchflights.php"); 
     document.flight_select.action="search_flights.php"; 
     document.flight_select.submit(); 
    } 
} 
</script> 

これは私のPHPコードです:

echo " 
    <form id=\"flight_select\" method=\"POST\">; //Some formatting code follows this for displaying table; 
echo "<tr><td colspan=\"2\" > 
      <input type=\"submit\" value = \"< New Search\" onClick=\"submitFunction(2)\";/></td> 
      <td colspan=\"3\"><center>"."<input type=\"submit\" value=\"Make Booking for selected flight >\" onClick=\"submitFunction(1)\"/>"."</center> 
      </td></tr>"; 
+0

フォームを送信していて、アクションを設定してもう一度フォームを送信しますか? – epascarello

+0

フォームには2つのフォームが表示されます。ユーザーが「新規検索ボタン」をクリックすると、search_flights.php(値がリセットされた同じページ)にリダイレクトされなければなりません。そして、予約を行うとリダイレクトされます別のページに移動します。関数submitFunctionを作成し、値1と2を渡しています。私の場合、アラートは正しくポップアップしていますが、転送されていません。私は行動を設定し、javascriptを使用して送信しているので、htmlでhtmlのアクションタグを使用しません。私の質問を明確にすることを願っています。 – adave

+0

しかし、送信ボタンをクリックし、送信ボタンを送信しています... – epascarello

答えて

0

あなたがクリックによってトリガーされるオリジナルの提出をキャンセルしませんでした。 return falseを使用することは、デフォルトのクリックイベントハンドラをキャンセルする1つの方法です。したがって、送信が完了する前にフォームを送信しないようにしてください。コードでは、これを行う最も簡単な方法はonClick="submitFunction(2);return false"です。

さらに、onClick="javascriptcode"を実行せず、JavaScript側からハンドラをアタッチし、echoを使用してHTMLを出力しないようにして、コードとプレゼンテーションの分離を維持します。

+0

質問を解決していただきありがとうございます。私はコードを修正し、以下の最終コードを投稿しています。 :) – adave

0
As per your suggestion, I modified the code to look something like this and that resolved my issue: 

<script> 
function submitFunction(i) 
{ 
    if(i==1){ 
     alert("Page1.php"); 
     document.getElementById("flight_select").action="page1.php" 
     document.getElementById("flight_select").submit(); 
    } 
    if(i==2){ 
     alert("searchflights.php"); 
     document.getElementById("flight_select").action="search_flights.php" 
     document.getElementById("flight_select").submit(); 
    } 

} 
</script> 

<html> 
<head><title>Multiple submit test</title></head> 
<body> 
<form id="flight_select" method="POST"> 
First Name: <input type="text" name="fname"/> 
<input type="submit" value="Click for page1.php!" onClick="submitFunction(1);return false;"/> 
<input type="submit" value="Click for search_flights!" onClick="submitFunction(2);return false;"/> 
</form> 
</body> 
</html> 
関連する問題