使用表单外的按钮提交表单

时间:2013-10-17 19:37:03

标签: javascript php html

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

    <?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> 

5 个答案:

答案 0 :(得分:8)

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

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

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

答案 1 :(得分:1)

您的按钮位于表单标记之外。

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

<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>

注意按钮上的表单属性。

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

print_r($_POST);

答案 2 :(得分:1)

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

您可以使用

检查帖子
if (!empty($_POST))
{

}

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

答案 3 :(得分:1)

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

答案 4 :(得分:0)

如果表单外有一个按钮,则无法使用该按钮提交带有该按钮的表单。

我看到较低的代码确实看起来正确:     添加项目

我认为这不起作用。你确认表格确实提交了吗?我认为表单名称并不总是在$ _POST数组中传递。更好地测试其中一个元素,或者只是print_r($ _ POST);显示提交的信息。