7

PhoneGapとjQueryMobileを使用してモバイルアプリケーションを構築しようとしています。私のアプリには、MYSQLを更新して次のページに進むPHPファイルへのリンクがあるページがあります。しかし、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

次のように、ボタンにイベントハンドラーをバインドする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
        }

    })
});

これはあなたが探しているものですか?

于 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 に答える