我尝试用以下情况制作购物车:
我有按钮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?
最佳答案
首先,您需要使用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*/
希望能帮助到你!
关于javascript - 如何通过带有运算符的某些参数传递多个参数,例如“+”或“&”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47805755/