lacrim
@lacrim
Отшибленный на всё голову экспериментатор.

Как передать в URL GET с пробелами?

Возникла непонятная ситуация: есть сайт на друпале, есть представление вьюс, где ссылка должна открывать в colorbox форму в которую get передаёт имя текущего материала.

Пример кода:

<a class="colorbox-load" href="/form?name=[title]">Отправить</a>


В случае если [title] (токен заголовка) не содержит пробелов, всё работает на ура, но если в [title] содержится к примеру 2 слова и более с пробелами и.т.д. начинаются проблемы. Скажу сразу - ранее с get запросами дел не имел, понимаю что нужно как-то экранизировать в моём запросе [title] или конвертировать пробелы к примеру в нижнее подчёркивание. Скажу сразу - гуглил, пытался через urlencode всё это закрутить, но видимо руки не с того места, или мозг кривой.

Буду очень благодарен за пинок в нужную сторону!
  • Вопрос задан
  • 11559 просмотров
Решения вопроса 1
@serega_kaktus
Программист-самоучка, фрилансер
Поставьте этот модуль https://www.drupal.org/project/views_php
Сначала создайте php поле, в котором будет что-то типа return urlencode($title);
Потом уже значение этого поля подставьте вместо [title]
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
zvermafia
@zvermafia
WebDev
Используй base64. Перед отправкой кодируешь данные и когда принимаешь декодируешь.
Если не ошибаюсь base64 был создан именно для этого, что бы кодировать данные в URL.
Ответ написан
Комментировать
AlexFreem
@AlexFreem
addicted
Пробелы успешно заменяются комбинацией символов "%20" что эквивалентно пробелу.
Далее друпал может обработать get-параметры при помощи функции drupal_get_query_parameters

Пример:
Обрабатываем запрос вида mysite.com/page?arg=text%20text
$get_params = drupal_get_query_parameters();
echo $get_params['arg'];

Вернет нам "text text".
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы