2016-12-05 27 views
1

現在、私はExcelをアップロードして指定された期間の間にデータベースからデータを取得できるHTMLページを作成しています。 1つの送信ボタンは、Excelとデータベースからデータを取り出し、両方のリストから値を比較し、競合する値を表示します。別の送信ボタンを追加する必要があります。ここで、ユーザーは同じフォーム内の競合する値に対してマッピングを実行する方法を設定できます。複数の送信ボタンが単一のフォームにあり、両方の送信ボタンがPHPでアクセスされます

2つの送信ボタンを同時に使用して、PHPの2番目の送信ボタンにアクセスした最初の送信ボタンに投稿されたデータはどうですか?

+0

余分な疑問符が削除されました。 – rlandster

答えて

0

限り、送信ボタンを同じform要素の内側に配置されているとして、それらのいずれかをクリックすると、それらが中に配置されているフォームを送信します。それに

、同じフォーム内のすべてのフィールドが提出されます。

しかし、おそらく、送信ボタンがクリックされて別の方法で動作することがわかっているとします。

nameプロパティを追加して、どの送信ボタンがクリックされたかを指定できます。

<input type="submit" name="submit1"> 
<input type="submit" name="submit2"> 

このフォームがPOSTメソッドで送信されると仮定すると、次の例を使用してどの送信ボタンがクリックされたかを確認できます。

$importData = isset($_POST["submit1"]); 
$mapSettings = isset($_POST["submit2"]); 

だから、あなたは同じform要素に異なる形式のすべてのフィールドを配置することによって、これを達成することができます。送信ボタンがクリックされたにもかかわらず、フォーム要素内のすべてのフィールドが送信されます。

これで、上記のブール値の結果を使用して、何をすべきかを判断できます。

0

私はこのような状況のために、これまで見た中で最高の答えは次のとおりです。

<input type="submit" name="action" value="Update" /> 
<input type="submit" name="action" value="Delete" /> 

次に起動されたかを確認するためのコードのチェックに:

if ($_POST['action'] == 'Update') { 
    //action for update here 
} else if ($_POST['action'] == 'Delete') { 
    //action for delete 
} else { 
    //invalid action! 
} 

その唯一の問題はあなたのネクタイですあなたのロジックを入力内のテキストに変換します。また、各1に一意の名前を与えると、ちょうどその入力の有無の$ _POSTをチェックすることができ:

<input type="submit" name="update_button" value="Update" /> 
<input type="submit" name="delete_button" value="Delete" /> 

、コードで:

if (isset($_POST['update_button'])) { 
    //update action 
} else if (isset($_POST['delete_button'])) { 
    //delete action 
} else { 
    //no button pressed 
} 

この程度の素敵なポストはここにあります: Two submit buttons in one form

関連する問題