Передача значения, включая пробелы в вызове Ajax - PullRequest
5 голосов
/ 23 сентября 2010

Попытка передать пробелы вместе с вызовом ajax.

«слово» передается так же, как «слово», я верю в это.

С другой стороны, необходимо отправить два словаполностью с вызовом.

«слово секунда», но не то же самое, что «слово секунда»

Должен ли я обрезать перед вызовом или сделать это на сервере сценарий?Как я могу также отправить пробелы?

Ответы [ 3 ]

4 голосов
/ 23 сентября 2010

Чтобы разрешить параметру включать пробелы и т. Д., Вы захотите использовать функцию javascript escape() [ W3Schools ].

escape( 'hello world ' ) = 'hello%20world%20';

Обработка на стороне PHP будетавтоматически декодировать / отменять экранирование параметра, восстанавливая пробелы (вместе с любыми другими символами, которые не могут быть частью значения параметра при отправке через AJAX, например, «=» или «&».

В PHP, если выЕсли вы хотите убрать все начальные или конечные пробелы, вы можете использовать функцию PHP trim() [ PHP.net ].

trim( 'hello world ' ) = 'hello world';
1 голос
/ 09 февраля 2018

Я знаю, что это старый вопрос, но я хотел бы отметить, что в принятом ответе предлагается функция, которая устарела с версии 1.5 JavaScript.

Вместо этого следует использовать либо encodeURI () или encodeURIComponent () для отправки пробелов и других специальных символов.

var param = encodeURIComponent("word second "); 
console.log(param); // outputs 'word%20second%20'

PHP на другом конце будет обрабатывать декодирование автоматически.Это позволяет вам обрезать места, где вы считаете это наиболее практичным.Если это технически не имеет значения, я бы обрезал пробелы в коде JavaScript с помощью функции trim(), потому что она экономит крошечную полосу пропускания сети и слегка облегчает нагрузку на сервер, обрезая клиентскую часть.

0 голосов
/ 23 сентября 2010

Самый простой способ, я думаю, это encodeURIComponent строка в javascript перед отправкой xmlhttprequest, а затем urldecode в PHP

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...