谁偷了个人&符

购物车sku选择js,切换验证,一直是我不肯意回忆的黑暗代码…… php

时隔几个月以后,今天忽然又发现有个商品没法添加到购物车、通过仔细检查以后,发现,商品的sku为
array(
    'color'=>'black & grey',
    'size'=>'M'
);
可是购物车文件接收到的sku确是
array(
    'color'=>'black & grey',
    'size'=>'M'
);
由于作过sku匹配验证,若是不匹配的话,没法加入购物车。我就很奇怪了,明明我什么都没作,为何会变呢?
html

后来通过测试,发现一个问题:测试代码以下: jquery

<?php ajax

$a = json_encode(array('color'=>'aa & bb'));
        var_dump($a);
        echo '<div id="test">'.$a.'</div>';
        echo '<script>var test = document.getElementById("test").innerHTML</script>'; json

?> 浏览器

结果发现,json_encode以后的字符串,放到div里面,浏览器会自动将其转化为html实体。 测试

最终致使我ajax提交给购物车文件处理的时候,出现了sku不匹配的状况。。在购物车文件将html实体的sku再转化回来就能够了。 spa

$sku = html_entity_decode($sku); code

问题是解决了。 htm

虽然我知道把数据放到div里面,再用js去获取,这样的方法很差。可是我真不知道有什么其余办法。。。

我最开始是在php文件里面,

<script>

var sku = '<?php echo json_encode($sku);'

sku = $.parseJSON(sku);

</script>

后来老大说,为了代码结构更清楚,要把php文件和js文件分开,不能这么写。我就只能把数据写到div里面,用jquery去拿了……

不知道还有什么更好的办法……

相关文章
相关标签/搜索