[英]PHP/ Ajax/ jQuery - Equivalent for my code
我有以下代码,并希望使用jquery使其更简单:
var auctionBidAjax;
function auctionBid(auction_id) {
auctionBidAjax=GetXmlHttpObject();
if (auctionBidAjax==null) {
alert ("Your browser does not support XMLHTTP!");
return;
}
var url="/cms/ajax/auctionBid.php?auction_id="+auction_id;
auctionBidAjax.onreadystatechange=function() { auctionBidReady(auction_id); };
auctionBidAjax.open("GET",url,true);
auctionBidAjax.send(null);
}
和...
function auctionBidReady(auction_id) {
if (auctionBidAjax.readyState==4) {
if (auctionBidAjax.responseText == "Bid Placed") {
document.getElementById('auctionBid' + auction_id).innerHTML=
"<a href=\"javascript:auctionBid("+auction_id+");\">Place Bid</a>";
userBids();
} else if (auctionBidAjax.responseText == "Not Logged In") {
popupCentre('popupLogin');
popupLoad('popupLogin');
} else if (auctionBidAjax.responseText == "No Bids"){
popupCentre('popupNoBids');
popupLoad('popupNoBids');
}
}
}
我的PHP脚本添加了一个出价等,并回显responseText。
您已将此问题标记为jquery,因此可以使用$.ajax()
:
function auctionBid(auction_id) {
$.ajax({
url: "/cms/ajax/auctionBid.php",
type: "GET",
data: {
auction_id: auction_id
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
// act appropriately
},
success: function(data, textStatus) {
// do whatever
}
});
}
如果您不需要错误处理程序,则可以使用$.get()
的简单形式:
function auctionBid(auction_id) {
var url = "/cms/ajax/auctionBid.php";
$.get(url, { auction_id: auction_id }, function(data, textStatus) {
// do whatever
});
}
我实际上更喜欢不使用错误处理程序。 这比需要的要难看。 将其用于实际错误。 成功处理程序可以处理“未登录”之类的事情。 只需传递一个包含所需信息的JSON对象即可告诉用户发生了什么。
为此,您可以使用$.getJSON()
速记版本。
function auctionBid(auction_id) {
var url = "/cms/ajax/auctionBid.php";
$.getJSON(url, { auction_id: auction_id }, function(data) {
if (data.notLoggedIn) {
alert("Not logged in");
}
...
});
}
要从PHP以JSON json_encode()
返回一些信息,请使用json_encode()
并适当设置MIME类型:
<?php
session_start();
header('Content-Type: application/json');
echo json_encode(array(
'highBid' => get_new_high_bid(),
'loggedIn' => $_SESSION['loggedIn'],
));
exit;
?>
我正在对您的登录系统进行假设,因此上述内容大为简化。
将其返回到$.getJSON()
回调,您应该能够执行以下操作:
alert(data.highBid);
alert(data.loggedIn);
JQuery.get是您所需要的http://docs.jquery.com/Ajax/jQuery.get
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.