1

私はすでに基本的な SimpleCart.js Web ショップをセットアップしており、プロモーション/割引コード機能を追加するための realseanp のソリューションを実装しようとしています。

次の JavaScript を使用して、ユーザーが入力したプロモーション コードを discount.php に投稿します。

jQuery("#promoSub").click(function Discount() {
    //Interact with PHP file and check for valid Promo Code
    jQuery.post("discount.php", { code: jQuery('#code').val() } , function(data) {
        console.log(jQuery('#code').val());
        if (data=="0" || data=='') { 
            console.log("Wrong Code"); 
        }
        else {
            //create our cookie function if promo code is valid
            //create cookie for 1 day
            createCookie("promo","true",1);
            var y = (data/100);
            for(var i=0; i<simpleCart.items().length; i++){
                var itemPrice = simpleCart.items()[i].price();
                var theDiscount = itemPrice * y;
                var newPrice = itemPrice - theDiscount;
                simpleCart.items()[i].set("price", newPrice)
            }
            simpleCart.update();
            //hides the promo box so people cannot add the same promo over and over
            jQuery('#promoCodeDiv').hide();

        }
    });
});

...正しいコードが渡された場合、0 または割引率がエコー バックされます。

<?php
$x = 0;
if ($_POST["code"]=="HOLIDAY") { $x = 5; };
echo $x;
?>

ただし、success 関数内から console.log(data) を実行すると、データは PHP スクリプト全体であり、エコーではなく文字列として表示されます。

これはなぜですか? また、修正するにはどのような変更を加える必要がありますか? 私はPHPが初めてで、jQuery.post()がエコーを受け取らない理由を理解するのに苦労しています。

4

0 に答える 0