我正在使用以下代码尝试将数据插入到我的数据库中。数据工作正常,我使用表单。表单有一个提交按钮,我将,但代码在下面的代码中。我使用localhost来运行我的Web应用程序
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO PRODUCTS (P_Name, P_Description, P_Price) VALUES ('$_POST[Name]', '$_POST[description]', '$_POST[Price]' ) ";
$conn->exec($sql);
echo "New record created successfully";
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>
提交按钮:
<div id="theSubmit">
<input type="submit" name="submit">
</div>
当我点击提交时,我将被带到页面显示文本新记录成功创建。但是我想重新加载页面。
我知道javascript location.reload();这是我必须使用的,如果是这样的话?
答案 0 :(得分:0)
你应该在执行你的sql之后重新加载。
$_SESSION['msg'] = "New record created successfully";
header("Location: $url"); // tell the client to load $url
exit(); // stop further execution of the current script
$msg
应该通过session设置,以便能够在重新加载后显示msg。
如果您这样做,如果用户点击后退按钮或重新加载页面就没有问题。
重新加载后:
if(isset($_SESSION['msg'])) {
echo $_SESSION['msg'];
unset($_SESSION['msg']);
}
答案 1 :(得分:0)
如果你没有显示任何DOM元素,或者在PHP脚本之前做任何Header请求,你可以随时使用php函数
header('Location: your-url.com');
exit();
重新加载网站。
如果在头函数之前有头请求,则此解决方案不起作用,因此您可以在脚本底部添加该JS代码,以便在处理完表单后触发它。
答案 2 :(得分:0)
使用:
header("Location: $_SERVER[REQUEST_URI]");
exit;
这将使用GET
方法将用户重定向到同一页面,然后重新加载。