0

我在一页上放了两张表格。两种表单单独工作都很好,但是当它们同时放在一个页面上时,它们会相互冲突。以下是两种形式:

联系表:

<form name="contactform" id="contactform" method="post" action="#targetAnchorPage2">
<table>
<?php
if (isset($_POST["name"])){
?>
<tr>
 <td colspan="2" class="error">
 <?php
 require_once("contact_send.php");
 ?>
 </td>
</tr>
<?php
}
?>

<tr><td><label for="name" class="<?=$name_class?>">name:</label></td><td><input  type="text" name="name" maxlength="50" value="<?=$name?>"></td></tr>
<tr><td><label for="email" class="<?=$emailaddress_class?>">email:</label></td><td><input  type="text" name="email" maxlength="80" value="<?=$emailaddress?>"></td></tr>
<tr><td colspan="2"><label id="tworows" for="message" class="<?=$message_class?>">your message:</label></td></tr><tr><td colspan="2"><textarea  name="message" cols="22" rows="6" value="<?=$message_class?>"></textarea>
 </td></tr>

<tr>
 <td colspan="2" style="text-align:center"><br /><input class="button" type="submit" value="">   
 </td>
</tr>

</table>
</form>

订阅表格:

<form name="subscribeform" id="subscribeform" method="post" action="#targetAnchorPage3">
<table>
<?php
if (isset($_POST["name"])){
?>
<tr>
 <td colspan="2" class="error">
 <?php
 require_once("subscribe_send.php");
 ?>
 </td>
</tr>
<?php
}
?>

<tr><td><label for="name" class="<?=$name_class?>">name:</label></td><td><input type="text" name="name" maxlength="50" value="<?=$name?>"></td></tr>
<tr><td><label for="email" class="<?=$emailaddress_class?>">email:</label></td><td><input type="text" name="email" maxlength="80" value="<?=$emailaddress?>"></td></tr>

<tr>
 <td colspan="2" style="text-align:center"><br /><input class="button" type="submit" value="">   
 </td>
</tr>

</table>
</form>

如何解决?它是由“required_once”命令引起的吗?

4

2 回答 2

2

我猜想,由于您根据相同的标准显示所需的文件,isset($_POST['name'])并且由于两个表单都有name字段,因此无论提交哪种表单,您最终都会在两个要求中显示代码。您应该简单地更改表单上的表单字段名称,以使它们不同。

于 2013-01-15T16:17:21.820 回答
0

两种形式都有相同的动作属性,它们都指向同一个页面(注意哈希不会发送到服务器)。因为它们都有一个名为的字段name并且您正在检查它,所以无论发送哪种表单,这两个操作都会执行。

您可以执行以下任一操作:

  • 使用不同的脚本/表单处理器(不要回发到同一页面)
  • 对每个表单使用不同的检查,例如通过添加一个隐藏输入来区分表单。
于 2013-01-15T16:19:05.627 回答