minishop2 форма заказа
Планирую переделать форму доставки, необходимо сделать возможность выбора доставки в зависимости от указания города из списка. Т.е. мне нужно добавить возможность указания доступных городов для каждого вида доставки. В каком направлении копать, так чтобы сохранилась возможность обновления пакета?
Комментарии: 24
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
А города можно указывать в описании метода.
Никита ПавловНикита ПавловНикита ПавловВ MS2 меняются классы корзины, заказа, доставки и оплаты. При этом можно поменять и родной javascript. Я даже не знаю, что может тебя ограничить в твоих начинаниях.
Все, что ты отправляешь с фронтенда нужно искать в массиве $_POST.
Никита ПавловЕсли правильно расширять классы, как расписано в инструкциях — с обновлениями проблем не будет.
Никита ПавловФорма отправляется через POST, значит все её поля доступны в этом суперглобальном массиве.
Отправил input с name=«city», лови его в классе как $_POST['city'].
Есть большое желание засунуть это значение в заказ автоматически в options — отправляй c name = options[city].
Никита ПавловВот мой селект:
Кстати, если заменить дефолтный инпут «город» на мой селект, форма будет работать? Как на счет стандартной валидации?
Про эти массивы можно почитать в гугле, это PHP.
Да, правильно, проверяй.
Никита ПавловНикита ПавловТак выглядит часть чанка заказа с выбором городов:
При проверке переменная $cityid = $_POST['city']; оказывается пустой.
Я заметил что при редактировании любого поля формы, отсылается запрос POST к action.php с кодом действия add. Мой же селект полностью игнорируется, думаю в этом и причина. Возможно неправильно оформлен селект, не хватает атрибутов, был бы благодарен за подсказку.
Никита ПавловСкрипт его принял как родное, ушел запрос к контроллеру с параметрами
key:city
value: Ололо
ms2_action:order/add
ctx:hob
А вот с селектом не выходит. Я конечно могу подстроится и под инпут, но интерес к селекту остается.
Никита ПавловКстати из массива $_POST ничего не вытаскивается, для класса он вообще пустой.
Зато заметил(наконец-то) что в функцию getCost передается весь заказ в виде переменной $order. После экспериментов, таки получил значение своего инпута.
Алилуя?
Никита ПавловРасширяю класс, по «инструкции»:
На выходе имеем совершенно непонятный пересчет стоимости, при изменении стоимости доставки. В класс непонятно какая доставка передается…
Никита ПавловНикита ПавловНапомню, что в массиве $_POST для класса доставки ничего нет.
Тестировал со следующим классом доставки:
Вот город класс получает правильный, а со способом доставки беда.
Никита ПавловВот мой класс доставки:
удалось вам это побороть?