javascript - php isset($_post[]) 和 javascript form.submit

标签 javascript php html

由于某种原因,当我使用 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/

相关文章:

javascript - Facebook "zoom in"时,聊天侧边栏被 Conceal ,但如何?

PHP - 从数据库中显示损坏的图像

css - 如何防止我的网站内容在缩放期间移动?

javascript - 如何根据另一个已经存在的选择器选择元素?

javascript - 使用 JS 如何获取 div 的 flex-direction 属性的值?

javascript - 如何让 cfdiv 显示在每一行下面?

PHP Respect Relational - 从特定列更新

php - 基本 HTACCESS 问题

html - XPath:如何捕获前一个元素?

javascript - $(this).find(..) 替代方案