停留在同一页面上时如何完成投票功能? (PHP/MySQL)
How is upvote functionality done while staying on the same page? (PHP/MySQL)
我有一个关系数据库和一个thread/comment系统。我无法想出解决投票问题的方法,因为必须刷新页面才能让服务器注意到任何更改。
我创建了一个新的 table,UPVOTESTHREAD 由两个外键组成,用户 ID 和线程 ID,以及一个主键,它是两者的组合。不过,我可以实际插入其中的唯一方法是提交一些 POST 数据。恐怕这会让用户感到笨拙,而且还意味着用户将不得不向下滚动回到他们刚刚查看的位置。这不可能是正确的解决方案,对吧?有更好的方法吗?
是的,有更好的解决方案。它被称为AJAX。它向服务器发送 post 或获取请求,并在不重新加载页面的情况下接收输出。
接收 ajax 请求的服务器上的脚本可以(在您的情况下)增加数据库中的投票计数器。
(通常是 PHP-)脚本还可以输出一些东西(通常是 json 或状态代码),ajax 函数的成功处理程序将接收到这些东西。然后,您可以相应地使用 javascript 修改您的页面。在您的情况下,您可以收到当前的投票计数,如果有计数,则更新投票按钮旁边的计数。
我有一个关系数据库和一个thread/comment系统。我无法想出解决投票问题的方法,因为必须刷新页面才能让服务器注意到任何更改。
我创建了一个新的 table,UPVOTESTHREAD 由两个外键组成,用户 ID 和线程 ID,以及一个主键,它是两者的组合。不过,我可以实际插入其中的唯一方法是提交一些 POST 数据。恐怕这会让用户感到笨拙,而且还意味着用户将不得不向下滚动回到他们刚刚查看的位置。这不可能是正确的解决方案,对吧?有更好的方法吗?
是的,有更好的解决方案。它被称为AJAX。它向服务器发送 post 或获取请求,并在不重新加载页面的情况下接收输出。
接收 ajax 请求的服务器上的脚本可以(在您的情况下)增加数据库中的投票计数器。
(通常是 PHP-)脚本还可以输出一些东西(通常是 json 或状态代码),ajax 函数的成功处理程序将接收到这些东西。然后,您可以相应地使用 javascript 修改您的页面。在您的情况下,您可以收到当前的投票计数,如果有计数,则更新投票按钮旁边的计数。