如何使用jQuery运行MySQL查询?

n0p*_*0pe 15 html javascript mysql jquery

是否可以使用jQuery运行MySQL查询?我试图模仿SE网站上的投票功能.

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

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

Shy*_*yju 16

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

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

HTML

<input type='button' id='btnVote' value='Vote' />
Run Code Online (Sandbox Code Playgroud)

使用Javascript

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

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

  });
Run Code Online (Sandbox Code Playgroud)

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

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

编辑:根据你的评论,

jQuery也支持帖子.这是格式

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

这相当于

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

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

  • 并且不要试图不为每个查询创建单独的服务器操作,而是使用通用操作来执行jQuery指定的任何查询.那将是一个巨大的安全漏洞.应始终存在专门针对可以检查权限的每个操作的服务器端代码. (10认同)

Int*_*ang 6

用您最喜欢的语言只需几行.

使用Javascript

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

PHP(简化)

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

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

  • 哎呀,这个问题的标题是什么?"如何使用jQuery运行MySQL查询?"如果他想使用XMLHTTPRequest,那就去吧. (4认同)
  • 我上次检查时,jQuery编写的语言是Javascript. (4认同)
  • jQuery是一个javascript库.当然,任何使用jQuery的代码都是javascript代码. (4认同)