3

我正在尝试制作一个处理学生和导师数据库的网站。我的问题是,到目前为止,我知道可以运行 PHP 脚本(例如,从数据库中删除用户)的唯一方法是将信息放在链接中并让用户单击该链接。这确实有效,但很烦人,因为这意味着用户不断被重定向到新页面。我也一直在使用一些 $_SERVER['PHP_SELF']?其他信息,但这很麻烦,因为它会建立一个长堆栈的同一页面(即尝试使用浏览器的后退/前进功能将您带到同一页面)。

我希望能够生成链接/按钮,单击时将信息传递给 php 脚本,而无需重定向/更改页面(可能刷新页面以显示新结果除外)。

我的网站上的一个示例,该页面生成所有用户的列表,然后生成相应的链接/按钮以删除每个用户:

//Gets the list of users and iterates through the data
while ($row = mysqli_fetch_array($data))

    {
        $fullname = $row['lastname'] . ", " . $row['firstname'];
        $username = $row['username'];
        $remove_link = "remove_user.php?username=$username";

        echo '
                  <tr>
                    <td>' . $fullname . '</td>
                    <td>' . $username . '</td>
                    <td> <a href="'. $remove_link . '">Remove this user.</a> </td>
                  </tr> 
        ';

    } 
echo '</table>';

单击 $remove_link 时,它会加载一个删除用户的 php 脚本,然后重定向回原始页面 (user_list.php)。有没有办法只调用 remove_user.php 脚本而不重定向/更改页面?

提前致谢。

4

6 回答 6

2

当今网站的工作方式是使用Ajax动态加载/更改页面内容。

使用 Ajax 的最佳方式是使用jQuery 的 Ajax函数。互联网上有许多教程将向您展示如何使用 jQuery。

如果你不想在你的 Ajax 中使用 jQuery,你可以使用老式的方法。您可以在w3schools.com上查看有关它的教程。

希望这可以帮助!

于 2012-07-31T19:46:10.853 回答
1

您需要开始熟悉 javascript 和 AJAX。可能会考虑将 jQuery 用于您的 javascript 框架,因为它使这个相对简单,并且是最流行的此类框架,得到广泛的支持。

于 2012-07-31T19:28:19.763 回答
0

你需要通过 来做到这一点Ajax,最简单的方法之一是使用jQuery及其$.ajax,和方法$.post,它们可以让你做你想做的事。 如果您还没有使用过 jQuery,我建议您搜索一些教程,尤其是关于nettuts$.get$.getJson

于 2012-07-31T19:28:37.233 回答
0

而不是<a href="link">您可以使用<a onlick="window.location.replace('link')">which 不会将路径添加到历史记录中,您可以使用该PHP_SELF方法。

除此之外,您将不得不使用 AJAX。

于 2012-07-31T19:29:07.443 回答
0

使用 jQuery 进行 Ajax 调用的 5 种方法

阅读本教程,它将对您有所帮助。

于 2012-07-31T19:37:42.740 回答
0

除了顶部的答案。如果用户禁用了 javascript,我将使用此 AJAX 后备脚本。在删除脚本的末尾放置以下内容:

<?php
//check if the request is not done with ajax
if (empty($_SERVER['HTTP_X_REQUESTED_WITH']) || strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') { 
//now check if the http referer is not empty. It's where the click took place. And if it's not empty redirect back to where the user came from.
    if (!empty($_SERVER['HTTP_REFERER'])) {
        header("Location: " . $_SERVER['HTTP_REFERER']);
        exit;
    }
}
?>
于 2012-07-31T20:13:13.393 回答