Benim kayıt işleminin sonunda size bir kupon kodu girebileceğiniz bir ödeme ekranına almak, ve veritabanından kupon getirir ve bunun önce toplam uygulanabilir böylece sayfaya döndürür bir AJAX çağrısı var paypal teslim edilir. Firefox, Chrome, Safari ve büyük çalışır, ancak Internet Explorer, hiçbir şey olmuyor. JQuery işlevi döndürülen (data) null görünüyor.
jQuery Post
function applyPromo() {
var enteredCode = $("#promoCode").val();
$(".promoDiscountContainer").css("display", "block");
$(".promoDiscount").html("<img src='/images/loading.gif' alt='Loading...' title='Loading...' height='18' width='18' />");
$.post("/ajax/lookup-promo.php", { promoCode : enteredCode },
function(data){
if ( data != "error" ) {
var promoType = data.getElementsByTagName('promoType').item(0).childNodes.item(0).data;
var promoAmount = data.getElementsByTagName('promoAmount').item(0).childNodes.item(0).data;
$(".promoDiscountContainer").css("display", "block");
$(".totalWithPromoContainer").css("display", "block");
if (promoType == "percent") {
$("#promoDiscount").html("-" + promoAmount + "%");
var newPrice = (originalPrice - (originalPrice * (promoAmount / 100)));
$("#totalWithPromo").html(" $" + newPrice);
if ( promoAmount == 100 ) {
skipPayment();
}
}
else {
$("#promoDiscount").html("-$" + promoAmount);
var newPrice = originalPrice - promoAmount;
$("#totalWithPromo").html(" $" + newPrice);
}
$("#paypalPrice").val(newPrice + ".00");
$("#promoConfirm").css("display", "none");
$("#promoConfirm").html("Promotion Found");
finalPrice = newPrice;
}
else {
$(".promoDiscountContainer").css("display", "none");
$(".totalWithPromoContainer").css("display", "none");
$("#promoDiscount").html("");
$("#totalWithPromo").html("");
$("#paypalPrice").val(originalPrice + ".00");
$("#promoConfirm").css("display", "block");
$("#promoConfirm").html("Promotion Not Found");
finalPrice = originalPrice;
}
}, "xml");
}
Corresponding PHP Page
include '../includes/dbConn.php';
$enteredCode = $_POST['promoCode'];
$result = mysql_query( "SELECT * FROM promotion WHERE promo_code = '" . $enteredCode . "' LIMIT 1");
$currPromo = mysql_fetch_array( $result );
if ( $currPromo ) {
if ( $currPromo['percent_off'] != "" ) {
header("content-type:application/xml;charset=utf-8");
echo "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>";
echo "<promo>";
echo "<promoType>percent</promoType>";
echo "<promoAmount>" . $currPromo['percent_off'] . "</promoAmount>";
echo "</promo>";
}
else if ( $currPromo['fixed_off'] != "") {
header("content-type:application/xml;charset=utf-8");
echo "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>";
echo "<promo>";
echo "<promoType>fixed</promoType>";
echo "<promoAmount>" . $currPromo['fixed_off'] . "</promoAmount>";
echo "</promo>";
}
}
else {
echo "error";
}
Ben IE kodu çalıştırdığınızda, ben diyor Javascript hattı üzerinde bir javascript hatası alıyorum
var promoType = data.getElementsByTagName('promoType').item(0).childNodes.item(0).data;
İşte IE hata ayıklayıcı bir ekran görüntüsü
Update
Ben on line bir kesme noktası ayarlamak, ve aslında bu hat üzerinde hatası karşılaşır:
if ( data != "error" ) {
Ben kesme sonra kodun geri kalanını çalışmasına izin Ancak, bu İŞLERİ. Ben ajax isteği gerçekten bitmeden belki IE geri çağırma işlevi çalıştıran düşünüyorum, bu yüzden PHP henüz sonuç dönmedi? Bunu test edebilirsiniz herhangi bir yolu var mı?