2012-04-24 64 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。