Слеш в GET параметре

Rocketware

Всем привет!
Есть часть URL типа index.php?route=report/product_custom

report/product_custom я храню в форме в hidden инпуте.

Когда я сабмитом отправляю форму на сервер, get параметр принимает вид:
index.php?route=report%2Fproduct_custom

Все работает, но как сделать так, чтобы в URL был слеш, а не %2F ?

 

Drunkenmunky

Rocketware

Эту функцию я сразу нашел гуглом, на не могу понять, где ее применять

Вот мой код:

Код (Text):
  1. <form action=»» method=»GET»>
  2.                     <input type=»text» name=»route» hidden value=»<?php echo urldecode(«report/product_custom»)?>»>
  3.                     <input type=»text» name=»token» hidden value=»<?php echo $tk; ?>»>
  4.                     <input type=»number» name=»id» hidden value=»<?php echo $product[‘product_id’]; ?>»>
  5.                      
  6.                     <input type=»number» name=»quantity» class=»<?php echo «edit» . $product[‘product_id’]; ?>» value=»<?php echo $product[‘quantity’]; ?>»>
  7.                     <button type=»submit» class=»btn btn-success»>Установить</button>
  8.                   </form>

Я понимаю, проблема в том, что этот слеш лежит в инпуте.

 

Drunkenmunky

В обработчике.
Там, куда вы отправляете данные из формы.
Если же речь о том, что оно так выглядит в адресной строке, то это нормально — браузер так кодирует данные из формы.

 

Rocketware

Огромное спасибо, значит, то, что оно так выглядит в адресной строке, это нормально.

 

miketomlin

Такие костыли вылазят, очевидно, из-за того, что вы делаете что-то не так. Не пробовали путь передавать в пути, а не в GET-параметре? :) Тогда его спокойно можно указать в action:

HTML:
  1. action=»/report/product_custom»

— Добавлено —
Использование метода GET в форме тоже под большим вопросом.

 

Rocketware

Так и есть, это костыли, вожусь со своим сайтом на Opencart 2.3. Сделал кастомный отчет, во Opencart это ссылка
https://veloaccs.com.ua/admin/index.php?route=report/product_custom&token=xxx

У меня в отчете много инпутов, которые отвечают за количество на складе
Я каждый инпут завернул в форму и добавляю к выше указанному пути ID=23&quantity=2
и обновляю количество.

Мне уже на Opencartforum объяснили, что это нужно делать через Javascript и Ajax, но я пока в этом не умею :(

 

miketomlin

Параметр route=… предназначен для рерайта из /… или /admin/… Я уж молчу, что по нынешним меркам это полнейший анахронизм, но лучше так (рерайт), чет так, как у вас.

Не, это никак не связано. Аякс – хорошо, но можно сделать вменяемо и без него.

 

mkramer

А какая вам разница? Массив $_GET расшифровывается автоматом, в нём будет ваш слеш
— Добавлено —

Бывают ситуации, когда плевать :) И тут ТС не виноват, так в опенкарте сделано. Может ему пофиг на ЧПУ? Я, когда ещё работал на опенкарте, без прямой просьбы заказчика на ЧПУ не переходил.

 

miketomlin

Может :) Но объективно ЧПУ рулят в том числе и в админке! Это не только мое наблюдение. Как пить дать, ТС будет постоянно обращать внимание на %2F в адресе.
— Добавлено —
Вообще я уже давно забыл про ЧПУ vs не ЧПУ. У нас сейчас везде, в том числе и в админках, нативные ЧПУ! Полный кайф :)
— Добавлено —
Кста, в GET-параметре – это по сути тоже нативный ЧПУ, только сделанный через Ж. Я имел в виду, что у нас GET-параметры типа route уже давно не используются. Все идентификаторы в первую очередь «адресные». Могут быть и доп. внутренние идентификаторы, но это не обязательно.

 

Rocketware

Насколько я понял, в Opencart 2.3 в админке нет ЧПУ, на фронте у меня стоит ЧПУ, все нормально. Попрошу сделать мне скидку на то, что я не профессиональный программист, только учусь хоть что-то делать на своем магазинчике :) В общем, всем спасибо за ответы, как всегда на этом форуме, я узнал много нового :)

 

miketomlin

Наличие route говорит о том, что по крайней мере для обработчиков есть. ЧПУ – это не обязательно в пути, хотя почти всегда, и не обязательно для всего. Основной смысл – это использование слагов в адресе (возможно, частичное) ВМЕСТО числовых id. Вы просто не сделали рерайт пути в GET-параметр для админки.

 

miketomlin

Иногда бывает, что и ВМЕСТЕ, но это такие себе ЧПУ.

Хотя, да, по идее еще должен существовать переключатель, чтобы ссылки на страницах были с вменяемыми путями без упоминания параметра route.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *