我正在努力建立一个处理学生和导师数据库的网站。我的问题是,到目前为止,我所知道的唯一可以运行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脚本而不重定向/更改页面?
提前致谢。
答案 0 :(得分:2)
今天网站的工作方式是使用Ajax动态加载/更改网页内容。
使用Ajax的最佳方法是使用jQuery's Ajax函数。互联网上有很多教程将向您展示如何使用jQuery。
如果你不想在你的Ajax中使用jQuery,你可以使用老式的方式来实现它。您可以在w3schools.com上查看相关教程。
希望这有帮助!
答案 1 :(得分:1)
您需要开始熟悉javascript和AJAX。可能会考虑使用jQuery为你的javascript框架,因为它使这个相对简单,并且是最受欢迎的这样的框架,有广泛的支持。
答案 2 :(得分:0)
您需要通过Ajax
执行此操作,其中一种最简单的方法是使用jQuery及其$.ajax
,$.post
,$.get
和$.getJson
方法可以让你做你想做的事。
如果您还没有使用过jQuery,我建议您搜索一些教程,尤其是nettuts
答案 3 :(得分:0)
您可以使用不会在历史记录中添加路径的<a href="link">
代替<a onlick="window.location.replace('link')">
,而是可以使用PHP_SELF
方法。
除此之外,你必须使用AJAX。
答案 4 :(得分:0)
5 Ways to Make Ajax Calls with jQuery
阅读本教程,它会对您有所帮助。
答案 5 :(得分: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;
}
}
?>