onbluer事件调用函数时,函数的参数使用原生的php无效

在form表单的input中使用onbluer事件,调用函数中的参数若是原生php代码无效。

<?php
    $total = 0;
    foreach($data as $product):
?>
            <tr id="tr-<?php echo $product['id'] ?>" class="products">
              <td bgcolor="#ffffff" align="center" style="width:300px;">
                <a href="" target="_blank"><img style="width:80px; height:80px;" src="<?php echo $product['cover'] ?>" border="0" title="<?php echo $product['title'] ?>"></a><br>
                <a href="" target="_blank" class="f6"><?php echo $product['title'] ?></a>
              </td>
              <td align="center" bgcolor="#ffffff">¥<?php echo $product['originalprice'] ?>元</td>
              <td align="center" bgcolor="#ffffff">¥<span id="p-<?php echo $product['id'] ?>"><?php echo $product['price'] ?></span>元</td>
              <td align="center" bgcolor="#ffffff">
                <input type="text" name="goods_number" value="<?php echo $product['num'] ?>" size="4" class="inputBg" style="text-align:center " onblur="changeNum(<?php echo $product['id'] ?>, this.value)" id="product-<?php echo $product['id'] ?>" >
               </td>
              <td align="center" bgcolor="#ffffff">¥<span id="total-<?php echo $product['id'] ?>"><?php echo $product['num']*$product['price'] ?></span>元</td>
              <td align="center" bgcolor="#ffffff">
                <a href="javascript:delPro(<?php echo $product['id'] ?>);" class="f6">删除</a>
              </td>
            </tr>
<?php
    $total += $product['price']*$product['num'];
    endforeach;
?> 

 <script type="text/javascript">
                function changeNum(productid, num){
                    alert(productid);
                    alert(num);
                    //通过ajax将对应商品的数量进行修改操作
                    var url = "changeNum.php";
                    var data = {'productid':productid, 'num':num};
                    var success = function(response){
                        if(response.errno == 0){
                            var price = ($("#product-"+productid).val())*($("#p-"+productid).html());
                            $("#total-"+productid).html(price);
                        }
                    }
                    $.post(url, data, success, "json");
                }
  </script>

使用alert弹出检测onbluer是否有效,发现onblur="changeNum(<?php echo $product['id'] ?>, this.value)"consloe中第一个参数是没有办法传递值的,其实从数据库中已经取到数据的,(this.value就是从数据库中取出的num的值)更改第一个使用原生php的方式传递参数,就可以弹出。非常感谢!

阅读 1.7k
1 个回答

查看一下生成的代码

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题