これを行うには、 AJAXを使用する必要があります。簡単な例を次に示します。
HTML
質問にあるように、単純なリンクです。ただし、構造を少し変更して、少しきれいに保ちます。
<a id='update_status' href='updateRCstatus.php' data-rxdtime='$time' data-txid='$txid' data-balance='$balance' data-ref='$ref'>Update</a>
ここでは、このコードは変数が補間された二重引用符で囲まれた文字列であると想定しています。
JavaScript
jQueryにタグを付けたので... jQueryを使用します:)
ブラウザーはclick
リンク上のイベントをリッスンし、適切な URL に対して AJAX 要求を実行します。サーバーがデータを送り返すと、success 関数がトリガーされます。詳細について.ajax()
は、jQuery のドキュメントを参照してください。
ご覧のとおり.data()
、GET パラメーターを取得するために使用しています。
$(document).ready(function() {
$('#update_status').click(function(e) {
e.preventDefault(); // prevents the default behaviour of following the link
$.ajax({
type: 'GET',
url: $(this).attr('href'),
data: {
rxdtime: $(this).data('rxdtime'),
txid: $(this).data('txid'),
balance: $(this).data('balance'),
ref: $(this).data('ref')
},
dataType: 'text',
success: function(data) {
// do whatever here
if(data === 'success') {
alert('Updated succeeded');
} else {
alert(data); // perhaps an error message?
}
}
});
});
});
PHP
ここで何をしているのか知っているようです。重要なことは、適切なデータ型を出力することです。
<?php
$rxdtime=$_GET["rxdtime"];
$txid=$_GET["txid"];
$balance=$_GET["balance"];
$ref=$_GET["ref"];
header('Content-Type: text/plain; charset=utf-8');
// -------- SQL Query -------
// your logic here will vary
try {
// ...
echo 'success';
} catch(PDOException $e) {
echo $e->getMessage();
}