我正在尝试在我的网站中构建一个优惠券系统,并且我想为此使用 jQuery AJAX。
那么我正在尝试如何做到这一点......
我在 coupon.php 中有一个数组,其中包含以下数据:
Array
(
[admins] => 50
[helpers] => 20
)
admins 是优惠券,50 是用户将获得的销售额。提供 html 表单的用户当然需要输入优惠券名称。
这就是我的 jQuery 的样子:
$(function() {
var ilength = 3;
var price_class = document.getElementsByClassName('price_no');
var price_no = parseFloat(price_float[0].innerHTML);
$('#coupon_entry').keyup(function() {
var that = this,
value = $(this).val();
if (value.length >= ilength)
{
$.ajax({
url: 'coupon.php',
type: 'POST',
data: {'coupon': value},
dataType: 'html',
success: function(result) {
if (result != 0)
{
$('.price_no').text(result / 100 * price_no);
}
}
});
}
});
});
这就是 .price_no
在 HTML 中的样子:
<span class="price">Total: <strong><span class="price_no">28.9</span> USD</strong></span>
这就是我在 PHP 中处理整个事情的方式:
$coupon_post = $_POST['coupon'];
$coupons_str_ary = explode(';', $config['mp_coupons']);
$coupons_array = array();
foreach ($coupons_str_ary as $coupon)
{
$coupon_percentage = substr(strrchr($coupon, '='), 1);
$coupon_name = $market->reverse_strrchr($coupon, '=', 0);
$coupons_array[$coupon_name] = $coupon_percentage;
}
unset($coupons_array[0]);
echo (array_key_exists($coupon_post, $coupons_array)) ? (float) $coupons_array[$coupon_post] : 0;
?>
这个 PHP 脚本具有我上面发布的数组,然后我使用用户的输入来调用数组的键,然后使用返回消息 (echo
) 来获取新的销售价格如果使用优惠券。
问题
我上面描述的一切都不起作用——数字根本没有改变。
P.S:我还使用了 jQuery text()
方法。但 .price_no
总是会变成/返回 NaN
,然后我切换到经典的 Javascript 来获取类名。
我做错了什么?
最佳答案
var price_class = document.getElementsByClassName('price_no');
var price_no = parseFloat(price_float[0].innerHTML); //error is here
我认为你必须将price_float[0]更改为price_class[0]
关于javascript - 通过 jQuery AJAX 和 keyup 事件搜索特定术语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20145692/