7

我正在尝试使用 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?

4

4 回答 4

9

假设上面的 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'] ;并检查这是否适合您

于 2012-04-24T06:16:27.243 回答
3
<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。

于 2014-03-28T07:47:09.910 回答
1

说你的按钮有一个 idclickme你在它上面绑定一个事件处理程序如下,我使用 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
        }

    })
});

这是你想要的?

于 2012-04-24T06:15:46.093 回答
-1

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

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

你的 html 应该包含

在php中做这样的事情

mysql_query('blah blah');
mysql_close($con);

echo "http://1.2.3.4/test";
于 2012-04-24T06:42:36.663 回答