2015-04-21 3 views
-2

Я передаю набор результатов запроса mysql в переменную javascript, а затем переменную объединяет URL. Но во время конкатенации он дает некоторую проблему, потому что в этом наборе результатов есть значение «+». Итак, как я могу конкатенировать мою строку с переменной, отличной от использования + в javascript? Есть ли другой способ?Как связать строку с переменной в javascript

var ser = "B+A+C+"; 
var url = "../include/helper.php?flag=search&&query="+ser; 
+2

Что проблема? – Zee

+1

Проблема заключается не в коде, который вы указали. Каков ваш серверный код? – vdwijngaert

+2

Наличие '+' в строке абсолютно не является препятствием для ее конкатенации. Я предполагаю, что проблема в том, что означает «+» в URL-адресе, но это действительно неясно из вашего вопроса. – Quentin

ответ

2

Конкатенация строк в JS выполняется отлично. Фактическая проблема связана с PHP, который по умолчанию рассматривает параметр + в параметре URL как означающее пробел, а не знак + знак. Если заменить + в строке с %2B, шестнадцатеричный код для знака +, он должен работать:

var ser = "B%2BA%2BC%2B"; 
var url = "../include/helper.php?flag=search&&query="+ser; 

Вы также можете сделать это автоматически с encodeURIComponent() (спасибо Jauco):

var ser = encodeURIComponent("B+A+C+B"); 
var url = "../include/helper.php?flag=search&&query="+ser; 
+2

Возможно, вы захотите использовать 'encodeURIComponent' вместо ручной замены плюсов. Он также избежит любых других неравномерных символов. – Jauco

+0

Хорошая идея; добавлено. – Scimonster

+0

Это правильный ответ ... Thanx Scimonster и Jauco – Nathan

Смежные вопросы