使用Javascript提交表单然后使用PHP

时间:2018-03-06 17:47:12

标签: javascript php html

不确定我上次是怎么做的,否则我不会在这里问,但这是我想要做的。

我有一个通常的基本形式,带有一个提交表单的javascript函数。问题是,在提交表单之后,我在PHP中有一个if语句,表示已经提交了表单。任何帮助将不胜感激。

//PHP
if($_POST['submitDelete']){

echo "welcome, You form has been submitted";

}    

//HTML
<form id="form_id" action="" method="POST">
First name: <input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br><br>
<input type="hidden" name="submitDelete" TYPE="submit">
</form>

<button type="button" onclick="myFunction()">Submit</button>

//JAVASCRIPT
<script>
function myFunction() {
 document.getElementById("form_id").submit();
}
</script>

我似乎无法在PHP中触发if语句。我也尝试在if语句中使用表单名称,但也没有用。

1 个答案:

答案 0 :(得分:2)

form element 必须告知在POST事件发生时将数据提交到哪里。这是通过为表单设置submit属性值来完成的。将该属性保留为空不会隐式设置表单以回发到当前页面。因此,如果您想拥有单页表单/表单处理器,则需要将action设置为当前页面文件名:

action

接下来,单个页面没有理由不能有多个表单。在这种情况下,您需要多个<form action="currentPageFileName.php" method="post"> 按钮,每个按钮都绑定到特定表单。出于这个原因,除非您将 form attribute 添加到按钮以将其绑定到表单,否则您不能只在您喜欢的页面上的任何位置放置submit按钮它应该触发提交。另外,如果您只是将submit按钮放在它所属的submit元素中,您就不必担心这一点。

此外,您有一些无效的HTML:

form

元素可能没有在其中重复相同的属性(您键入属性的情况没有区别,因为HTML不区分大小写)。因此,该代码最终只会创建一个提交按钮。

最后,如果您要使用<input type="hidden" name="submitDelete" TYPE="submit"> 按钮完成所有操作,导致其相关表单提交,则根本不需要JavaScript。这就是submit按钮默认执行的操作。

因此,最后,您可以完全删除代码中的JavaScript并将HTML更改为:

submit