每次击键时,输入的值都应该进入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";
}