如何使用jQuery运行MySQL查询?

是否可以使用jQuery运行MySQL查询? 我正在尝试模仿SE网站上的投票function。

SE上的投票计数器自动更新,无需重新加载页面(这是我目前所拥有的,一个隐藏的表单,重新提交到当前页面,但在PHP上运行一个小块,更新数据库中问题的分数)。 我假设这是使用Javascript / jQuery看到的,因为它是动态的。

我怎样才能做到这一点? 是否有一个简单易用的库(如PHP)?

您可以使用ajax来调用服务器页面(PHP / ASP /ASP.NET/JSP),并在该服务器页面中执行查询。

http://api.jquery.com/jQuery.ajax/

HTML

 

使用Javascript

当用户点击ID为“btnVote”的按钮时,此代码将被执行。 下面的脚本正在使用jquery库中编写的“ajax”函数。它将向页面发送一个请求,作为“url”属性(ajaxserverpage.aspx)的值。 在这个例子中,我发送一个名为“answer”的密钥的查询字符串值5。

  $("#btnVote").click(function(){ $.ajax({ url: "ajaxserverpage.aspx?answer=5", success: function(data){ alert(data) } }); }); 

在您的aspx页面中,您可以读取查询字符串(在此示例中,answer = 5)并构建查询并再次执行数据库。 您可以通过在PHP中编写Response.Write(在asp和asp.net中)/ echo来返回数据。 无论你返回什么,都会回到可变数据。 如果查询执行成功,您可能会返回“投票已捕获”或适用于您的应用程序的消息。 如果在try-catch块中捕获到错误,请返回该消息。

确保在构建查询之前正确清理输入。 我通常将我的function分组并将它们放在一个文件中。 例如:处理用户相关内容的MY Ajax页面将包含ValidateUser,RegisterUser等方法……

编辑 :根据你的评论,

jQuery也支持post。 这是格式

  $.post(url, function(data) { alert("Do whatever you want if the call completed successfully") ); 

这相当于

  $.ajax({ type: 'POST', url: url, success: function(data) { alert("Do whatever you want if the call completed successfully") } }); 

这应该是一个很好的阅读: http : //en.wikipedia.org/wiki/Same_origin_policy

用您最喜欢的语言排成几行。

使用Javascript

 $.post('script.php', { id: 12345 }, function(data) { // Increment vote count, etc }); 

PHP(简化)

 $id = intval($_POST['id']); mysql_query("UPDATE votes SET num = num + 1 WHERE id = $id"); 

有许多不同的方法可以实现这一目标。