从数据库获取数据而不刷新整页

时间:2010-03-24 23:45:53

标签: php database ajax

我的项目是关于一个学校管理员我有一个名为:createClass.php的页面,其中用户插入成绩,个人资料等。当他按下“提交”页面时,称为createdClass.php正在加载。在这个页面里面,我有所有将数据插入数据库的代码,以及一个“if”结构,如果在数据库中是另一个具有相同规范的类,则表示“类已经存在”。同样在第二页(createdClass.php)中,我有一个小桌子,显示每个学生的位置。第一次所有单元格都是绿色(这意味着这个地方是免费的)如果我点击其中一个就会出现一个弹出窗口,让我可以从那个地方添加关于学生的信息。如果某个地方很忙,则该单元格将为红色(请查看此处:http://screencast.com/t/NzM2YzYxNjct)。最大的问题是,只有刷新页面后,单元格才会变红(这个地方要求数据库提供数据)。如果我按下刷新出现“类已经存在”。为了测试我在评论中添加的代码,所有行分别验证和添加课堂。我认为我的问题可以用ajax解决。我在等一个答案。关心Stefan

2 个答案:

答案 0 :(得分:1)

要从弹出窗口刷新原始窗口,请使用以下javascript:

window.opener.location.refresh();

答案 1 :(得分:0)

插入数据后,您必须将用户重定向到另一个页面(一般来说,在POST请求之后)。

将createClass.php中的表单更改为指向同一页面,并将数据库插入代码移动到该文件。

<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // insert the data here
    header('Location: /createdClass.php');
    exit();
}

?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
...
</form>

(更新)流程将如下所示:

  1. 向用户显示createClass.php
  2. 中的表单
  3. 当用户提交表单时,提交将在同一个createClass.php中处理,该文件插入数据库行,然后显示没有页面,但告诉浏览器转到'createdClass.php'。
  4. 现在浏览器加载了createClass.php,它只显示学生表(但没有插入数据库!)。现在,您可以根据需要多次刷新createClass.php而不会产生副作用。
  5. 请注意,上述内容可能无法解决您的所有问题。没有更多信息(或代码),我无法提供更多帮助。