【问题标题】:HTML form refuses to _Post. Why not?HTML 表单拒绝 _Post。为什么不?
【发布时间】:2021-06-06 02:29:44
【问题描述】:

我是 PHP 新手,这种花哨的 html 写作风格。

我已经尝试了无数的修复和解决方法,但是这里的表单不会保存到 _POST 全局数组,我不知道为什么。我从一个教程到另一个教程,他们也是这样做的。

(我什至尝试盲目地应用以前类似问题的一些答案,例如设置 action="=$_SERVER['PHP_SELF'];?>"。那没有用。我的意思是.. 。我没有尝试将操作转发到另一个页面,因为我需要它一遍又一遍地执行这种精确的形式。但我尝试设置 action = index.php。没有变化。)

事实上,我可能只是拼错了一些东西,这让我发疯了。我真的希望有人能告诉我我做错了什么。

下面是回显出来的 HTML。 script.js 是一个“验证脚本”,基本上只是写入 id="error" div。

pre Array() 是由 html 下面的代码部分生成的。

<!doctype html>
<html lang="en">
<head>
    <script defer src ="script.js"></script>
    <title>Form Widget</title>
</head>
<body>
    <pre>Array
(
)
</pre>
    <div id="error"></div>
<!--Render Form here--> 
    <form action="" method="POST" id="form">
            <div>
                <label>Name</label><br>
                <input type="text" id="name" value=""/>
            </div>
            <div>
                <label>Email</label><br>
                <input type="text" id="email" value=""/>
            </div>
<button type="submit">Submit</button>
        </form></body>
</html>

这里是相关的php代码。或者至少我认为这是相关的部分,因为其他一切似乎都很好......除了表单没有保存的事实。哈哈。

<?php
//  if($_POST != null){         
    echo '<pre>';
    print_r($_POST);
    echo '</pre>';
    //  echo $_POST['name']
    //}
?>

这是脚本,以防万一

const name = document.getElementById('name') 
const form = document.getElementById('form') 
const errorElement = document.getElementById('error')

//We've been given no validation rules, so I added mock ones.
form.addEventListener('submit', (e)=> {
    let messages = []
    
    if (name.value == '' || name.value == null){
        messages.push('Name is required.')
    }
    
    if(messages.length > 0) {
        e.preventDefault();
        errorElement.innerText = messages.join(', ')
    }
})

【问题讨论】:

    标签: javascript php forms


    【解决方案1】:

    您的&lt;input&gt; 标签需要有name 属性。例如。 &lt;input type="text" name="email"&gt;name 属性与 id 属性不同。浏览器不会提交未命名的输入。

    你的表格变成了

    <!--Render Form here--> 
        <form action="" method="POST" id="form">
                <div>
                    <label>Name</label><br>
                    <input type="text" id="name" name="name" value=""/>
                </div>
                <div>
                    <label>Email</label><br>
                    <input type="text" id="email" name="email" value=""/>
                </div>
    <button type="submit">Submit</button>
            </form>
    

    【讨论】:

    • 哦……我的……天哪!我用 id 替换了 name,因为我听说前者已被弃用。
    猜你喜欢
    • 2011-07-21
    • 2019-09-20
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多