为什么有些表单会添加?action = submit to URL

时间:2015-01-07 01:42:32

标签: php forms

我有一堆带有表单的php页面。

我有一些工作表格在我开始访问网站之前已经存在 - 它们都按预期工作,所以我使用它们来模拟我写的新文章。

我不明白的是,在旧版/工作版中,当表单提交并且未通过验证时,URL保持原样,即' /form-name.php&# 39;

然而,由于复制了这些内容,我的新表单会添加到' / form-name.php?action = submit'

这样的网址

我在表单中使用与现有表单相同的操作:

<form id="standard" action="?action=submit" method="post" enctype="multipart/form-data">

所有php脚本的顶部通过

处理表单
if(isset($_REQUEST['action'])) {
    if($_REQUEST['action'] == "submit") {

我注意到现有的表单,当它们检查验证时,它们只是弹回到页面的顶部 - 而我的新表单,它们实际上刷新页面,就好像它提交,发现错误,然后重新加载页。

所以我只是想了解差异,决定每个表单在提交时的反应。

编辑:更多信息,我将添加以下包含的js函数:

$(window).load(function () {
if($("#standard").length != 0) {        
    $("#standard").validate();
    $.metadata.setType("attr", "validate");
}

$("#standard").submit(function() {
    var tmpError = false;

    // Disability
    if($("input[name='disability']:checked").val() =="Yes") {
        if($("#disability-text").val() == "") {
            $("#disability-text-error").slideDown('fast');
            tmpError = true;
        } else {
            $("#disability-text-error").slideUp('fast');
            tmpError = false;
        }
    }
if(tmpError) { return false; }
});

上面的.submit函数中有更多内容,但我没有看到任何字段。 例如,下面没有提到这个&#34; file&#34;整个JS中的字段:

                <tr><td><div class="field"><input type="file" size="33" name="file[]" validate="required:true" value="<?=$value['file']?>"><img src="../_images/icons/asterisk.gif" alt="Mandatory" style="margin-left: 10px" /><br />
                <label class="error" for="file[]">This field is required</label></div></td></tr>

编辑我已将其缩小为以下内容:

现有的旧代码使用jquery脚本进行验证:

<script type="text/javascript" src="../_import/js/jquery.validate.js"></script>
<script type="text/javascript" src="../_import/js/jquery.metadata.js"></script>

要为某些字段添加自动填充功能,我添加了:

<script type="text/javascript" src="../_import/js/jquery-1.9.0.js"></script>
<script type="text/javascript" src="../_import/js/jquery-ui-1.9.0.custom.js"></script>
<link rel="stylesheet" type="text/css" href="../_import/js/jquery-ui.css">

和BAM,打破了一些东西 - 当我删除那些包含和我的自动完成功能时,我的新表单现在采取相同的方式 - 即,他们不刷新,没有&#34;?action = submit&#34;添加到网址。

有没有人遇到过这种冲突?

1 个答案:

答案 0 :(得分:0)

有时程序员不想创建另一个文件来处理请求,因此他只是手动将此GET参数添加到表单目标并检查相同页面上的某个位置,如果此参数已设置,因此他知道表单已运行。