如何在提交sql语句后重新加载页面

时间:2015-03-13 19:00:40

标签: javascript php

我正在使用以下代码尝试将数据插入到我的数据库中。数据工作正常,我使用表单。表单有一个提交按钮,我将,但代码在下面的代码中。我使用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();这是我必须使用的,如果是这样的话?

3 个答案:

答案 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方法将用户重定向到同一页面,然后重新加载。