由于某种原因,当我使用 js form.submit() 时,isset($_post) 不起作用 我如何解决这个问题,而不改变提交按钮的输入类型,只使用普通的 javascript,因为我需要它们。
代码html:
<form name="user_verification" action="action.php" method="POST">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="button" onclick="myFunction(this)" name="button" value="submit">
</form>
这是action.php 文件中的php 脚本
if($_SERVER['REQUEST_METHOD']=="POST")
{
if(isset($_POST['button']))
{
echo 'yes';
}else{
echo 'no';
}
}
这里是action.js文件中的javascript
function myFunction(button)
{
//some code
const form=button.parentNode;
form.submit();}
最佳答案
实际上问题不是由 PHP 引起的。按钮的值是在按钮直接提交表单时发送的(在这种情况下,这似乎是不可能的)。
建议1:使用另一个字段来检查表单提交。
if($_SERVER['REQUEST_METHOD'] == 'POST') {
if(isset($_POST['email'])) {
echo 'yes';
} else {
echo 'no';
}
}
建议 2:在 HTML 中添加隐藏输入。
<form name="user_verification" action="test.php" method="POST">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="hidden" name="button" value="submit">
<input type="button" onclick="myFunction(this)">
</form>
建议 3:在提交之前将按钮类型更改为隐藏。
function myFunction(button) {
// some code
button.setAttribute('type', 'hidden');
const form=button.parentNode;
form.submit();
button.setAttribute('type', 'button');
}
关于javascript - php isset($_post[]) 和 javascript form.submit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71895356/