我是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 --------
?>
提前致谢。
答案 0 :(得分:2)
您需要使用AJAX来执行此操作。这是一个简单的例子:
只是一个简单的链接,就像你在问题中一样。但是我会稍微修改一下结构以保持它更清洁:
<a id='update_status' href='updateRCstatus.php' data-rxdtime='$time' data-txid='$txid' data-balance='$balance' data-ref='$ref'>Update</a>
我在这里假设这段代码是带引号变量的双引号字符串。
因为你标记了jQuery ......我将使用jQuery:)
浏览器将在链接上侦听click
事件,并对相应的URL执行AJAX请求。当服务器发回数据时,将触发成功功能。 Read more about .ajax()
in the jQuery documentation.
如您所见,我正在使用.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
$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();
}
答案 1 :(得分:0)
而不是<a href>
,使用ajax将值传递给您的php并获得结果 -
$.post('updateRCstatus/test.html', { 'rxdtime': <?php ecdho $time ?>, OTHER_PARAMS },
function(data) {
alert(data);
});