有2个表格时提交表格

时间:2016-09-24 23:36:51

标签: html forms

如何在不在同一页面上发送我的其他表格内容的情况下发送表格内容?例如

<form class="form" method="get" action="page.php">
    <input type="text" value="hi" name="forminput1">
    <input type="submit" value="send">
</form>
<form class="form" method="get" action="page.php">
    <input type="text" value="byebye" name="forminput2">
    <input type="submit" value="send">
</form>

page.php文件:

if (isset($_GET['forminput1'])) {
    //some code
}
if (isset($_GET['forminput2'])) {
    //some code
}

每当我提交表格#2时,我最终都会提交表格#1。

2 个答案:

答案 0 :(得分:2)

您没有为任何输入提供名称属性。如果没有name="somename"属性,浏览器将无法在GET或POST上传回任何内容。

如果添加像这样的名称属性

<form class="form" action="page.php">
    <input type="text" value="hi" name="data">
    <input type="submit" value="send" name="send">
</form>
<form class="form" action="page.php">
    <input type="text" value="byebye" name="data">
    <input type="submit" value="send" name="send">
</form>

它会突然开始按预期工作。

如果要使两个表单都是唯一的,可以在提交按钮中添加不同的名称。

<form class="form" action="page.php">
    <input type="text" value="hi" name="data">
    <input type="submit" value="send" name="send_form1">
</form>
<form class="form" action="page.php">
    <input type="text" value="byebye" name="data">
    <input type="submit" value="send" name="send_form2">
</form>

然后在您的PHP中,您将能够区分提交的表单(按钮)

<?php
if ( $_SERVER['REQUEST_METHOD'] == 'GET' && isset($_GET['send_form1'])) {
    // User sent form1
}

if ( $_SERVER['REQUEST_METHOD'] == 'GET' && isset($_GET['send_form2'])) {
    // User sent form2
}

答案 1 :(得分:-1)

我认为你使用相同的动作......形式是独立的