HTML 表单拒绝_Post,为什么不呢?



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

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

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

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

下面是被回显出来的 HTML。脚本.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(', ')
}
})

您的<input>标签需要具有name属性。 例如<input type="text" name="email">.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>

最新更新