2012-04-24 7 views
7

PhoneGapとjQuery Mobileでモバイルアプリケーションを構築しようとしています。私のアプリでは、MYSQLを更新して次のページに進むPHPファイルへのリンクがあるページがあります。しかしPhoneGapを使用すると、すべてのPHPファイルを外部サーバーに置く必要があるため、このアプリケーションで現在のソリューションを使用することはできません。MYSQLをjQuery/AJAXで更新します

これは、ユーザーがボタンをクリックしたときに、どのように私はこのPHPを実行することができ、私はMYSQL

<?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

+1

これは 'SQL'注入が起こりやすいです。ユーザー提供のデータをエスケープせずに直接クエリーに挿入しないでください。 – Quassnoi

答えて

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'] ;を交換し、チェックこれはあなたの成功の機能

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

に何かをするあなた

+0

どうすればこのコードを変更して動作させる必要がありますか?今は何もしません。 – user1323294

+0

少なくともレコードを更新しますか? – skos

+0

ボタンをクリックすると何もしません。 – user1323294

1

あなたのボタンにid clickmeというイベントハンドラをバインドすると、次のようにバインドされます。ボタンがページに存在しないときにコードが実行されることを避けるために、セレクタを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

0

のために働く場合、あなたは、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> 

Thのような何かを行いますSachyn Kosare作業を行うことにより、提案OSEコードは、唯一のものは、ラインdata: 'id='+idurl: "update.php"

の上にする必要があり、あなたはあなたのPHPのための$var = $_POST['id'];を使用することができるということです。