【发布时间】: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