如何使用一些具有“+”或“&”等操作符的参数传递多个参数

时间:2017-12-14 04:08:25

标签: javascript

我尝试用下面的案例制作购物车:

我有按钮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?

1 个答案:

答案 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*/
希望它有所帮助!