HTML表单提交后,通过PHP传递数据到MySQL数据库,通过phpmyadmin查看,数据传递成功,但是发现表单没有被清空,如何清空表单呢?
网上搜索了诸多方法,比如:
document.getElementById('biao').value="" ; //表单清空了,但是数据库只有id没有其他内容
document.getElementById('biao').reset(); //表单清空了,但是数据库只有id没有其他内容
document.getElementById('biao').submit(); //表单清空了,但是数据库只有id没有其他内容
document.form.value.clear(); //表单清空了,但是数据库只有id没有其他内容
又比如:
Response.Redirect("URL"); //数据库插入数据成功,但是没有清空表单
document.getElementById("d").value=""; //数据库插入数据成功,但是没有清空表单
还有的说如果用js提交后直接重置,有时候会报错,因为正在往后台传值的过程中,你就清空,会获取不到这个值。
这就需要js的回调机制,比如:
function submitForm(callback){ //主函数
document.getElementById("biao").submit();
callback(huidiao);
}
function huidiao(){ //回调函数
document.getElementById("biao").reset();
}
function tijiao(){
submitForm(huidiao);
} //用上面三个函数,表单清空了,但是数据库只有id没有其他内容
上述各种方法实测都不成功,出现两种情况:
1.数据库插入数据成功,但是没有清空表单;
2.表单清空了,但是数据库只有id没有其他内容。
后来通过搜索英文网站,发现了类似问题的解决办法:
html:
欢迎留言
name:
email:
content:
post.php:
//声明变量并接受form表单发送过来的数据
$name = $_POST['name'] ;
$email = $_POST['email'];
$content = $_POST['content'];
//连接数据库
$servername = "localhost";
$username = "root";
$password = "********";
$dbname = "liuyan";
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
//insert语句
$sql = "INSERT INTO message (name,email,content)
VALUES ('$name', '$email','$content')";
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "
" . mysqli_error($conn);
}
mysqli_close($conn);
?>
上面HTML文件注意这一行的写法: