Показать сообщение отдельно
  #22 (permalink)  
Старый 20.03.2015, 13:35
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

А говорите, что с базами все нормально. Если даже только посещает мысль "с помощью json_encode" что-то писать в базу, значит это уже не база, а свалка. )

Ну запишите вы это,и что это даст, как же вы будете делать выборку, если потребуется, что-то получить по заказу? А общую сумму как раз писать в базу нет нужды.

Еще раз - имена полей формы отражают массив, ключами которого являются уникальные идентификаторы услуг. Для его это и что это дает?

Вы не копируйте так "как есть", что я написал, то и вы себе вставляете. Я пишу лишь пример, "тезисы", а как оно должно быть на самом деле мне не известно, ибо я не знаю ни задач, ни условий.

Но кое что мне все-таки известно, и это кое что указывает на то, что вы поступаете не верно (это понятно из того, что вы сейчас представили).

1) Я добавил элемент SPAN для отображения общей суммы просто потому, что в примере ее нужно было во что-то вписать, но вам то он зачем? В вашем случае, например, у таблицы должна быть еще одна строка, последняя, такой структуры:

<tr>
    <th colspan="2">Общая сумма:</th>
    <th id="total"></th>
</tr>


ячейка id="total" которой и будет хранить сумму, а не span болтающийся под кнопкой отправки формы.

Форма у вас отправляется естественным способом, но у услуг есть условие (это ведь условие?) по цене - от минимума до максимума. Значит при наборе суммы в полях ввода, нужно проверять соответствует ли введенное этим условиям.

Эта проверка как сервис на клиенте, чтобы не гонять клиенту форму зря при ошибках ввода. А на севере такая проверка, это уже не сервис, а ваша обязанность как программиста. Что будет если пользователь ошибется, или что будет, если я вам пришлю форму с липовыми значениями, ключами которых будут не id услуг, а ABRACADABRA? Если таблица в базе грамотно составлена, будет ошибка о дубликатах ключей, а нет, так мусор и запишется. У вас у какой-то услуги цена от 200 до 500, а я ввиду 10 или 1000000, и что вы будете делать?

Проверка данных пришедших извне, соответствие их значений вашим же условиям, это первое что необходимо и только потом, если "таможня дала добро" следует их запись в базу. Правда писать надо совсем не то что вы в нее пишите. Решайте вопрос с проверкой, с учетом того, что по уму у вас должна быть не одна таблица описывающая заказ, а две - в первой это общие характеристики заказа, в другой выбранные услуги на указанную цену. Это есть детализация (расшифровка по вашему) заказа, детали же по услугам, как то их наименования можно получить из таблицы их описывающей по их идентификаторам, которые вы получите из формы, именно для этой цели они и помещаются в имена полей, именно они и пишутся в базу.

Думайте над проверкой сначала.
Ответить с цитированием