jQuery.post()数据以字符串形式返回整个PHP脚本?

我已经设置了一个基本的SimpleCart.js网上商店,我正在尝试实现 realseanp添加促销/折扣代码功能的解决方案。 </ p>

他使用以下JavaScript将用户输入的促销代码发布到discount.php:</ p>

  jQuery(“#promoSub”)。click(function Discount(){\  n //与PHP文件交互并检查有效的促销代码
jQuery.post(“discount.php”,{code:jQuery('#code')。val()},function(data){
console。 log(jQuery('#code')。val());
if(data ==“0”|| data ==''){
console.log(“Wrong Code”);
} \ n else {
//如果促销代码有效则创建我们的cookie函数
//创建cookie 1天
createCookie(“promo”,“true”,1);
var y =(data / 100) ;
for(var i = 0; i&lt; 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();
//隐藏促销框,以便人们不能一遍又一遍地添加相同的促销
jQuery('#promoCodeDiv')。hide();

}
});
});
</ code> </ pre>

...如果传递了正确的代码,它会回显0或折扣百分比:</ p>

 &lt;?php 
$ x = 0;
if($ _POST [“code”] ==“HOLIDAY”){$ x = 5; };
echo $ x;
?&gt;
</ code> </ pre>

但是,当我从success函数中调用console.log(数据)时,数据似乎是< a href =“http://i.stack.imgur.com/FEMAg.png”rel =“nofollow”>整个PHP脚本作为字符串而不是echo。</ p>

为什么会这样,我需要做些什么修改来纠正它? 我是PHP的新手,很难理解为什么jQuery.post()没有收到回声。</ p>
</ div>

展开原文

原文

I've already set up a basic SimpleCart.js web shop and am trying to implement realseanp's solution for adding a promo/discount code feature.

He uses the following JavaScript to post the user's entered promo code to 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();

        }
    });
});

...which echoes back a 0 or the discount percentage if the correct code has been passed:

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

However, when I console.log(data) from within the success function, data appears to be the entirety of the PHP script as a string instead of the echo.

Why is this, and what modifications do I need to make to rectify it? I'm very new to PHP and having difficulty understanding why jQuery.post() isn't receiving the echo.

douxi3404
douxi3404 我正在我的开发机器上进行本地测试。我将部署到Web服务器并报告回来。如果这是解决方案,我会觉得非常愚蠢。
接近 5 年之前 回复
dongni9825
dongni9825 jQuery正在接收它...它是服务器没有编译php是问题
接近 5 年之前 回复
doula4096
doula4096 这是否只发生在ajax请求中,或者当你正常去discount.php时会发生这种情况吗?
接近 5 年之前 回复
dszn2485
dszn2485 您是否在Web服务器中运行该程序?
接近 5 年之前 回复
du0531
du0531 分享你的discount.php代码
接近 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐