我尝试用以下情况制作购物车:

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

10-13 02:59