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();">

ETC......

现在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 发布。只需让按钮发布即可。只有被点击的按钮的名称和值才会被发布。

顺便说一句,您禁用按钮,大概是因为您不希望人们按两次按钮,但在您的设置中,他们仍然可以按任何其他按钮。我认为禁用所有这些是明智的。

于 2012-09-04T10:43:59.273 回答
0

两件事情:

  1. 首先,确保您发送的 URLheader是有效的 URL。
  2. 其次,看起来您在<?php开始标记之前有一些空格。确保PHP 开始标记之前没有空格。有的话就header不行了
于 2012-09-04T10:43:19.260 回答
0

通过在 JavaScript 中执行以下操作:

this.disabled = true;

您实际上不会将其值发送给 PHP。

一个更好的主意可能是防止双重提交的表单中的提交处理程序。

于 2012-09-04T10:45:56.883 回答