чем простое $a= отличается от $_POST['a']=
Это не одно и то-же.
"$a" - объявление переменной.
"$a = ..." - инициализация переменной / присвоение значения.
"$_POST" - ассоциативный массив данных, переданных скрипту через HTTP методом POST.
Т.е. если вы хотите получить данные из формы, переданные пользователем с вашего сайта, то используете "$_POST['имя / ключ поля']".
После получения и проверки, можете присвоить значение переменной для использования внутри функции
$a = $_POST['имя / ключ поля']
Спасибо за разъяснения!
В своей задаче, как я выяснил методом тыка, у меня всё делает java-script ORDER-OPC.js
В общем, я переделал регистрацию гостевую:
1. Для CUSTOMER обязательное поле только ИМЯ
2. В адресе обязательные:
- State, т.к. в зависимости от него автоматом рассчитывается стоимость доставки через Почту России
- Address1
- Phone
Остальные поля спрятаны через JS с использованием .hide(). При этом через JS присваиваю рандомный email, город (пока 'Гость', но планирую из Региона тащить город и в это поле подставлять).
Также, вместо address2 - сделал перечень станций метро через select - выбираем из списка.
И, главное, из-за чего весь сыр бор - добавил два новых поля для выбора времени доставки.
Все ошибки поправил, в базу всё пишется. Даже не пришлось ни в одном контроллере прописывать действия, типа: $hours = $_POST['hours'];
БД никак не реагирует на это. Т.к. js идёт в обход через AddressController.php, насколько я понял.
Теперь вопрос, мне нужно получать ошибку "Неверно введено время доставки", если значение поля (hours < dhours).
Я вот не знаю, куда это писать, в AddressController.php или Order-Opc.js?
Предполагаю, что в контроллер сразу после этого:
// Save address
if ($result = $address->save())
{
и что-то вроде этого:
if ($_POST['hours']<$_POST['dhours'])
die(Tools::displayError('Неправильно указано время доставки'));