2012-04-24 122 views
7

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

这是我用更新的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我想?

+0

你可以发送一些代码,你可以在应用程序中调用这个php页面。 – vikky 2012-04-24 06:02:03

+1

这很容易发生'SQL'注入。切勿将用户提供的数据直接插入到查询中而不会转义。 – Quassnoi 2012-04-24 06:03:59

回答

8

可以说上面的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 = @$_POST['id'] ;取代$var = @$_GET['id'] ;和检查,如果这对你的作品

+0

我如何更改此代码以使其工作?现在它什么都不做.. – user1323294 2012-04-24 08:10:15

+0

它至少更新记录吗? – skos 2012-04-24 08:28:49

+0

当我点击按钮时,它什么都不做。 – user1323294 2012-04-24 09:00:07

1

说你的按钮有clickme你就可以绑定一个事件处理程序的ID如下,我usnig的选择上,以避免案件被执行的代码,其中当按钮不存在于页面上..你可以很好绑定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 
     } 

    }) 
}); 

这是你在找什么?

+0

它似乎没有工作 – user1323294 2012-04-24 09:08:53

0

在你的成功的功能

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

做一些事情,你的HTML应该包含

而且在PHP做这样的事情

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

echo "http://1.2.3.4/test"; 
2
<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科萨雷没有工作建议OSE码,唯一的一点是,该行data: 'id='+id必须对url: "update.php"

顶部和,你可以使用$var = $_POST['id'];为PHP。