1

我有一个表单,我使用表单外的按钮提交。下面是关于如何使用表单外部的按钮提交表单的代码。下面的代码应该在页面上回显某些内容。但我不知道为什么我的文字不会回显。

    <?php
    if(isset($_POST['partForm'])){
        echo "Test1";
    }
    if(isset($_POST['submitForm'])){
        echo "Test2";
    }
?>

<html>
<body>

<div>
<h2>Part</h2>
<form method="post" enctype="multipart/form-data" name="partForm" id="partForm" action="submit_form_button_outside.php">
SKU#: <input type="text" name="sku"><br>
Part: <select name="categories">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="fiat">Fiat</option>
<option value="audi">Audi</option>
</select><br>

Description: <input type="text" name="part"><br>
Quantity: <input type="text" name="part"><br>
Price: <input type="text" name="part"><br>
Select images: <input type="file" name="img" multiple><input type="submit" value="Upload">
</form>
</div>

<div>
    <button type="submit" form="partForm" value="submitForm">Add Item</button>
    <!--<button type="button" onclick="document.getElementById('partForm').submit();">Add Item</button>-->
    <!--<button type="button" onclick="document.forms['partForm'].submit(); return false">Add Item</button> -->
</div>

</body>
</html> 
4

5 回答 5

8

您可以使用 jQuery 提交功能,如:

$('#buttonId').click(function() {
    $('#partForm').submit();
});

基本上,当单击外部按钮时,会提交表单。

于 2013-10-17T19:38:26.343 回答
2

您的按钮在表单标签之外。

如果您希望您的按钮在表单标签之外,请考虑以下示例:

<form action="demo_form.php" method="get" id="form1">
First name: <input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br>
</form>

<button type="submit" form="form1" value="Submit">Submit</button>

请注意按钮上的 form 属性。

接下来要检查的是是否设置了发布的变量:

print_r($_POST);
于 2013-10-17T19:43:43.167 回答
1

POST 数组中的值将是已发布元素的名称。我不是 100% 确定,但我认为表单名称不会出现在 $_POST 数组中。

您可以使用检查帖子

if (!empty($_POST))
{

}

或者您可以根据 FORM 中的输入名称检查单个值,例如 $_POST['sku']

于 2013-10-17T19:43:48.263 回答
1

您的代码运行良好,并且表单正在提交,但是您在 $_POST['partForm'] 中测试了错误的值,尝试填写值 sku ,并在您的 php 测试中 $_POST['sku']

于 2013-10-17T19:46:26.573 回答
0

如果您在表单之外有一个按钮,那么您将无法在不使用 javascript 的情况下使用该按钮提交表单。

我在下面看到的代码确实看起来很正确:添加项目

我认为那没有用。您是否验证表单确实提交了?我认为表单名称并不总是在 $_POST 数组中传递。更好地测试其中一个元素,或者只是 print_r($_POST); 显示提交的信息。

于 2013-10-17T19:40:18.957 回答