我正在制作一个相当简单的评级系统,但是我遇到了一个小问题。当你+1率的东西,我试图运行一个PHP脚本,将连接到数据库,从它下载的值,+1到该值,并再次更新数据库中的值。
我不认为重新加载一个连续的评级系统的页面是一个很好的主意:S
我想知道如何使用Ajax切换PHP脚本,以便当您单击+符号的图像时,它会运行PHP add 1脚本,并且+按钮变成一个tick。我不擅长ajax,我会尝试jQuery + $.ajax({});但我已经失败了73次哈哈。
谁愿意帮我写一个Ajax脚本?: DDD谢谢!:)
如果你想让别人点击一个链接来访问你的页面,让我们假设你有这样的标记:
<a class = 'plusOne' id = 'someIDForYourSQLTable'>+1</a>
ID是你要传递给你的服务器脚本,这样你就可以更新相应的行,一般来说,这应该是一个主标识符(即键),你想要+1的记录。
以下是将ajax请求发送到与当前页面位于同一目录下的文件:plusOne.php的jQuery:$(function() {
$(".plusOne").bind("click", function() {
$.ajax({
type: "GET",
data: "v="+$(this).attr("id"),
url: "plusOne.php",
success: function(data) {
// Whatever you want to do after the PHP Script returns.
}
});
});
});
请求将发送一个URL参数'v',你可以在你的PHP脚本中从$_GET
超级全局数组访问。
html
<img src="plusone.png" rel="some_unique_id" class="rate" />
javscript
$(".rate").click(function() {
var elem = $(this);
$.get('/rate.php?id=' + elem.attr('rel'), function() {
elem.attr('src', 'checked.png').unbind('click');
});
});
和php中的
mysql_connect('localhost','db_user','pssword');
mysql_query('UPDATE database_name.table_name SET rating=rating+1 where id=' . mysql_real_escape_string($_GET['id']));
看一下xAjax,一个将PHP函数/方法暴露给客户端JavaScript的库。xAjax让事情变得非常简单。
例如,您可以在浏览器中并行执行多个更改:
$objResponse = new xajaxResponse();
$objResponse->assign("myInput1","value",$DataFromDatabase);
$objResponse->assign("myInput1","style.color","red");
$objResponse->append("myDiv1","innerHTML",$DataFromDatabase2);
$objResponse->prepend("myDiv2","innerHTML",$DataFromDatabase3);
$objResponse->replace("myDiv3","innerHTML","xajax","<strong>xajax</strong>");
$objResponse->script("var x = prompt("Enter Your Name");");
return $objResponse;