【问题标题】:Update MYSQL with jQuery/AJAX用 jQuery/AJAX 更新 MYSQL
【发布时间】:2012-05-04 18:25:13
【问题描述】:

我正在尝试使用 PhoneGap 和 jQuery Mobile 构建移动应用程序。在我的应用程序中,我有一个页面,其中包含指向 PHP 文件的链接,该文件更新 MYSQL 并转到下一页。但是对于 PhoneGap,我需要在外部服务器上拥有所有 PHP 文件,所以我不能在这个应用程序上使用我当前的解决方案。

这是我用来更新 MYSQL 的 PHP

<?php

$var = @$_GET['id'] ;

$con = mysql_connect("localhost","username","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("database", $con);

mysql_query("UPDATE table SET condition=true
WHERE ID= \"$var\" ");

header('Location: http://1.2.3.4/test');

mysql_close($con);
?> 

那么当用户点击一个按钮时,我该如何运行这个 PHP 呢?我想使用 jQuery/AJAX?

【问题讨论】:

  • 你能在应用程序中调用这个 php 页面的地方发送一些代码吗?
  • 这很容易被SQL注入。切勿将用户提供的数据直接插入到查询中而不进行转义。

标签: php jquery mysql ajax cordova


【解决方案1】:
<head>
<script src="jquery.js"></script>
<script>
  function UpdateRecord(id)
  {
      jQuery.ajax({
       type: "POST",
       data: 'id='+id,     // <-- put on top
       url: "update.php",
       cache: false,
       success: function(response)
       {
         alert("Record successfully updated");
       }
     });
 }
</script>
</head>
<body>
<input type="button" id="button_id" value="Update" onClick="UpdateRecord(1);">
</body>

Sachyn Kosare 建议的那些代码确实有效,唯一的问题是 data: 'id='+id 行必须在 url: "update.php" 之上

而且,您可以将$var = $_POST['id']; 用于您的 PHP。

【讨论】:

    【解决方案2】:

    假设您的按钮有一个 id clickme 您在其上绑定一个事件处理程序,如下所示,我使用 on 选择器以避免在页面上不存在该按钮时执行代码的情况。您可以非常很好地绑定一个click 处理程序

    $(document).on("click","#clickme",function(){
        $.ajax({
    
            type:"POST", //GET - update query should be POST
            url: my_endpoint.php,  //your php end point
            data: {jsonKey1:jsonValue1},
            success: function(data){ //if success
              //do necessary things with data
            }
    
        })
    });
    

    这就是你要找的吗?

    【讨论】:

      【解决方案3】:

      假设上面的 PHP 代码在文件 update.php 中。然后就可以使用下面的代码了——

      <head>
      <script src="jquery.js"></script>
      <script>
        function UpdateRecord(id)
        {
            jQuery.ajax({
             type: "POST",
             url: "update.php",
             data: 'id='+id,
             cache: false,
             success: function(response)
             {
               alert("Record successfully updated");
             }
           });
       }
      </script>
      </head>
      <body>
      <input type="button" id="button_id" value="Update" onClick="UpdateRecord(1);">
      </body>
      

      只需在 UpdateRecord 函数中传递一个有效的 id。将您的 PHP 代码放入 update.php 文件中。为了安全起见,在您的 PHP 代码中将 $var = @$_GET['id'] ; 替换为 $var = @$_POST['id'] ; 并检查这是否适合您

      【讨论】:

      • 无论您传递什么 id,您都需要确保它指向数据库中的有效记录。还要确保“jquery.js”存在于您的文件夹中。
      【解决方案4】:

      在你的成功功能中做点什么

      success: function(response)
         {
             window.location = response;
         }
      

      你的 html 应该包含

      在 php 中做这样的事情

      mysql_query('blah blah');
      mysql_close($con);
      
      echo "http://1.2.3.4/test";
      

      【讨论】:

        猜你喜欢
        • 2017-09-10
        • 2013-01-18
        • 1970-01-01
        • 2016-09-12
        • 2017-07-16
        • 1970-01-01
        • 2014-03-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多