0

私はPHPとJavascriptに非常に慣れていません。現在、使用して PHP スクリプトを実行していますが、別のページにリダイレクトされます。コードは

<a name='update_status' target='_top'
href='updateRCstatus.php?rxdtime=".$time."&txid=".$txid."&balance=".$balance."&ref=".$ref."'>Update</a>

別のページにリダイレクトせずにこのコードを実行し、成功のポップアップと失敗の警告メッセージを取得するにはどうすればよいですか。

私のスクリプトコードは -

<?PHP
$rxdtime=$_GET["rxdtime"];
$txid=$_GET["txid"];
$balance=$_GET["balance"];
$ref=$_GET["ref"];
-------- SQL Query --------
?>

前もって感謝します。

4

2 に答える 2

2

これを行うには、 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();
}
于 2013-08-21T06:20:14.600 に答える
0

の代わりに、 ajax<a href>を使用して値を php に渡し、結果を取得します。

$.post('updateRCstatus/test.html', { 'rxdtime': <?php ecdho $time ?>, OTHER_PARAMS },
  function(data) {
    alert(data);
});
于 2013-08-21T06:12:46.633 に答える