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 请求。当服务器发回数据时,将触发成功函数。在 jQuery 文档中了解更多信息。.ajax()

如您所见,我.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

而不是<a href>,使用ajax将值传递给您的 php 并返回结果 -

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