php优惠券系统

问题描述

有人可以告诉我这段代码有什么问题吗?

我正在尝试从mysql数据库应用优惠券。但是这个简单的php变量没有被执行。

<html> 
<head> 
<title>Coupon test code</title> 
<style>
#error{
color: red;
font-weight: bold;
}
</style>
</head> 

<body> 
    <form name="couponField" action=""> 
        <span id="error"></span>
        Coupon code: 
        <input type="coupon" id="coupon" name="coupon"> 
        <input type="button" id="submit" value="Apply Coupon Code"> 
    </form> 
<?php $promo = "total"; ?>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script>
$('#submit').click(function(){
  var input = $('#coupon').val();
  var promo = <?php echo $promo; ?>;
  if(input === promo){
    $('#error').text('correct code!');
  } else if (input !== ''){
    $('#error').text('wrong code!');
  }
});
</script>

</body> 
</html>

谢谢!

解决方法

问题是您的javascript函数中的这一行:

var promo = <?php echo $promo; ?>;

通过用引号将php标签引起来解决此问题:

var promo = '<?php echo $promo; ?>';

此问题是由于以下事实引起的:PHP无法理解您要回显的变量将作为字符串值传递给javascript中的另一个变量;因此在运行代码时,javascript会看到:

var promo = total;

代替:

var promo = 'total';

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...