我尝试用下面的案例制作购物车:
我有按钮onclick = addItem(action,cat_no)点击时会激活此功能:
function addItem(action,cat_no) {
switch(action) {
case "adds":
queryString = 'action='+action+'&cat_no='+cat_no;
execute ajax adds...}
break;
case "drop":
queryString = 'action='+action+'&cat_no='+cat_no;
execute ajax drop...}
此函数将值传递给php脚本。
我发现如果我有cat_no的项目有'+'和'&'将失败。
例如,假设:cat_no ='SS + 03L',
我相信这是因为当它将此值放入queryString时,'+'成为运算符而不是值:
queryString = 'action='adds'&cat_no='SS+03L;
(当我检查echo $ _GET ['cat_no']时,我只获得'SS'而不是'SS + 03L')
在这种情况下,我该怎么做才能确保'SS + 03L'可以正确放入查询并传递给php?
答案 0 :(得分:1)
首先您需要使用javascript中的encodeURIComponent()来编码该运算符字符
encodeURIComponent( 'SS+03L') // will be "SS%2B03L" then pass to php
//in your case> queryString = 'action='+action+'&cat_no='+encodeURIComponent(cat_no);
然后'如果你需要'解码php中的 你可以使用urldecode()来获取原始字符串
urldecode("SS%2B03L") /*you will get 'SS+03L' back and construct your query then*/
希望它有所帮助!