1

複数の送信ボタンがあるフォームがあります。私のphpファイルのコーディングには、入力されたフォームに応じたURLを持つヘッダーがあります。私の問題は、フォームを送信するときです(使用するボタンに関係なく)、ポップアップするウィンドウは、そのボタンに割り当てられたURLアクションではなく、phpファイル自体です。私は何を間違っていますか?

フォームはこのように始まるので、私が正しく指示したかどうかを確認できます

<form method="post" action="http://gamerzacademy.com/foodCYO.php" target="_blank">
<input type="text" name="uid">
<input type="submit" name="Dish1" value="Dish1" onclick="
  this.disabled=true; 
  this.value='Gift Opened'; 
  document.FreeFoodForm.submit();">
<input type="submit" name="Dish2" value="Dish2" onclick="
  this.disabled=true; 
  this.value='Gift Opened'; 
  document.FreeFoodForm.submit();">

等......

phpファイルは次のように始まります

<?php
if ($_REQUEST['Dish1'] == "Dish1") {
    header("Location: url1".urlencode($_POST['uid']));
}
else if ($_REQUEST['Dish2'] == "Dish2") {
    header("Location: url2".urlencode($_POST['uid']));
}
else if ($_REQUEST['Dish3'] == "Dish3") {
    header("Location: url3".urlencode($_POST['uid']));
}
.....etc
?>
4

3 に答える 3

1

Javascript を使用してフォームを投稿しています。コードはどのボタンがクリックされたかを認識していないため、そのボタンの値はフォームにポストされません。そのため、フォームはどのボタンがクリックされたかを認識できません。メソッドを に変更するとget、ポストされる値とポストされない値が表示されます。

Javascriptから投稿する必要はまったくないと思います。ボタンに投稿をさせてください。クリックされたボタンの名前と値のみが投稿されます。

ところで、おそらくボタンを 2 回押したくないため、ボタンを無効にしますが、セットアップでは他のボタンを押すことができます。それらをすべて無効にするのが賢明だと思います。

于 2012-09-04T10:43:59.273 に答える
0

JavaScript で次のように実行します。

this.disabled = true;

事実上、その値を PHP に送信しません。

より良いアイデアは、二重送信を防ぐフォームの送信時ハンドラーである可能性があります。

于 2012-09-04T10:45:56.883 に答える
0

2つのこと:

  1. まず、送信する URLheaderが有効な URL であることを確認してください。
  2. <?php次に、開始タグの前に空白があるようです。PHP の開始タグの前に空白がないことを確認してください。ある場合、機能しheaderません。
于 2012-09-04T10:43:19.260 に答える