提交错误的帖子

时间:2017-07-14 01:02:20

标签: php html

我有一个PHP页面(page.php),我用它来将数据发布到我的数据库中。我正在使用表单方法post将数据发送到我的数据库。在<form>内,我有第二个<form>用于上传图片。

但是当我点击Upload时,外部<form>会发布:action="./submit.php"

有人知道如何解决这个问题吗?

这是我的剧本:

page.php文件

<form name="reaction" method="post" action="./submit.php">
    //multiple textboxes

    //upload script 

    <form name="newad" method="post" enctype="multipart/form-data" action="page.php">
        <table style="width:100%">
            <tr><td><input type="file" name="image" value="Choose file"></td></tr>
            <tr><td><br /><input name="Submit" class="btn2" type="submit" value="Upload"></td></tr>
        </table> 
    </form>

<button type="submit">Post page</button>
</form>

4 个答案:

答案 0 :(得分:0)

好吧Ryan是对的,你<form>里面<form>我的建议是改变html结构,或者用一个动作把它变成一个<form>,也许你可以将功能拆分为submit.php

答案 1 :(得分:0)

你不能在HTML.Follow this指令中使用这样的嵌套表单来更好地解决PHP中的表单处理问题。

答案 2 :(得分:0)

您可以在一个表单中使用两个提交按钮,每个按钮都可以有不同的formaction来指定提交位置。

<form name="reaction" method="post" enctype="multipart/form-data">
    //multiple textboxes

    //upload script 

    <table style="width:100%">
        <tr><td><input type="file" name="image" value="Choose file"></td></tr>
        <tr><td><br /><input name="Submit" class="btn2" type="submit" value="Upload" formaction="page.php"></td></tr>
    </table> 

<button type="submit" formaction="submit.php">Post page</button>
</form>

两个按钮都会提交所有表单字段,但这两个脚本可以忽略他们不关心的字段。

答案 3 :(得分:0)

<强>建议:

  • 第1步:分开每个表格

  • 第2步:给每个表单一个id

  • 第3步:使用jquery's $.ajax()将表单发布到各自的目标网址

Ajax调用示例:

$("#ajaxform").submit(function(e)
{
    var postData = $(this).serializeArray();
    var formURL = $(this).attr("action");
    $.ajax(
    {
        url : formURL,
        type: "POST",
        data : postData,
        success:function(data, textStatus, jqXHR) 
        {
            //data: return data from server
        },
        error: function(jqXHR, textStatus, errorThrown) 
        {
            //if fails      
        }
    });
    e.preventDefault(); //STOP default action
    e.unbind(); //unbind. to stop multiple form submit.
});

来自hog的代码我懒得写一个