未在keyup上发布变量


Variable not posted on keyup

每次击键时,输入的值都应该进入PHP进行动态验证。JS:

    $("#coupon-code").on('keyup', function () {
            var coupon = $("#coupon-code").val();
            $.ajax({
                url:"C:/xampp/htdocs/lessdoing/lessdoinglive.com/checkout/page-2/full-pay/coupons/coupons.php",
                type: "POST",
                data: {coupon: coupon}
            }).done(function (data) {
                if (data === "success") {
                    $('#coupon-code').css("background-color", "green");
                }
                else {
                    $('#coupon-code').css("background-color", "red");
                }
            })
        });

PHP:

$coupons = array("foobar", "coupon");
foreach($coupons as $coupon) {
    if ($_POST["coupon"] === $coupon) {
        echo "success";
    } else {
        echo 'invalid';
    }
}

我看不到脚本在控制台中有任何反响。变量insn未过帐。

1。URL

url:"C:/xampp/htdocs/lessdoing/lessdoinglive.com/checkout/page-2/full-pay/coupons/coupons.php"

它实际上不是一个由您的web服务器处理的URL。文件是由浏览器从文件系统打开的,什么也不做,因为它不是通过php预处理器推送的。它必须是一个正确的URI,比如说,如果你可以用http://127.0.0.1/lessdoing/checkout/page-2/full-pay/coupons/coupons.php访问你的网站,你的URL应该是/lessdoing/checkout/page-2/full-pay/coupons/coupons.php。充分的代表性也应该起作用,但不是必须的。

2.控制台中不会有回音

由于PHP部分脚本在服务器端运行,浏览器控制台中不会有回音。要echo,浏览器中的任何内容都必须在JS中的.done()回调中实现,例如:

.done(function (data) {
    console.log(data);
    if (data === "success") {
        $('#coupon-code').css("background-color", "green");
    }
    else {
        $('#coupon-code').css("background-color", "red");
    }
})

3.过账

您的JS脚本当前没有发送PHP识别的表单格式并将其发送到$_POST数组。此修复程序很快,您需要dataType: 'html'

$.ajax({
    url:"/lessdoing/lessdoinglive.com/checkout/page-2/full-pay/coupons/coupons.php",
    type: "POST",
    dataType: 'html',
    data: {coupon: coupon}
})

4.PHP升级

if(in_array($_POST["coupon"], $coupons)) echo "success";
else echo "invalid";

与其他答案一样,很难,但可能是一种情况,当您在$coupons数组中放置优惠券两次,并产生"successsuccess"而不是"succession"。

url:"C:/xampp/htdocs/lessdoing/lessdoinglive.com/checkout/page-2/full-pay/coupons/coupons.php",

此行必须是url。您写入了服务器文件路径。

.done(function (data) {
alert(data);
                if (data === "success") {
                    $('#coupon-code').css("background-color", "green");
                }
                else {
                    $('#coupon-code').css("background-color", "red");
                }
            })

如果您添加警报功能,您可以看到数据变量的值。

$coupons = array("foobar", "coupon");
foreach($coupons as $coupon) {
    if ($_POST["coupon"] === $coupon) {
        echo "success";
break;
    } else {
        echo 'invalid';
    }
}

而且如果你在成功领域增加突破,性能就会升级。也可以使用in_array函数。

$coupons = array("foobar", "coupon");
if (in_array($_POST["coupon"], $coupons)) {
   echo "success";
} else {
   echo "invalid";
}