誰偷了個人&符

購物車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去拿了……

不知道還有什麼更好的辦法……

相關文章
相關標籤/搜索