Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Сериализация. Корзина. Две формы. (https://javascript.ru/forum/jquery/12362-serializaciya-korzina-dve-formy.html)

Yanovsky 14.10.2010 00:40

Сериализация. Корзина. Две формы.
 
Здравствуйте.

Есть корзина вида

id |кол-во | оптовая_цена | оптовая_сумма | розничная_цена

Есть две формы. В первой выводится содержимое корзины и происходит пересчёт относительно изменения количества. Корзина формируется путём выбора данных их БД, при этом поле "розничная_цена" в БД нет. Здесь пользователь сам должен ввести цену.

Во второй форме пользователь вводит доп. инф. типа имени, адреса и нажимает "Оформить". Эта форма отправляет данные все данные.
В input hidden передаётся переменная $Bascet, которая формируется путём выборки из БД.(id,кол-во,оптовая_цена,оптовая_сум ма)
base64_encode(encode($Bascet, 'тут_соль'))


Вопрос. Как мне передать значения розничной цены во вторую форму?
Я думаю это реальзовать с помощью jQuery, допустим пройтись each'ом по всем инпутам розничной цены и сериализовать данные в одну строку, затем подставить hidden поле второй форме, а уже на сервере расшифровывать.

Вообще нужно чтобы заказ формировался примерно так:

Товар1 – 1 шт - 1000 руб (розничная цена - 1300 руб),
Товар2 – 3 шт - 4500 руб (розничная цена - 5200 руб),
Общая сумма заказа: 19000 руб.

Я понимаю что реализацию, которую я предлагаю не безопасна и извращёна, но на это есть причины.
Интересует сам вопрос сериализации через jQuery или лучше в виде JSON всех инпутов розничной цены. Спасибо.

Yanovsky 14.10.2010 10:29

Скажите, может я не туда обратился за помощью? В плане форума/раздела?

subzey 15.10.2010 11:15

Хм… а нельзя эти две формы объединить?

Yanovsky 15.10.2010 11:20

Нет. Я уже придумал вот такой изврат

var tmp = '';
  $('.rp').each(function(index, domEle){
  tmp += $(domEle).attr('name');
  tmp += '=';
  tmp += $(domEle).val();
  tmp += '&';
  });
  $('#id_hidden_input').val(tmp);


На сервере обрезаю последний символ строки tmp и прогоняю через explode и foreach.
$arr = explode("&", substr($переменная_в_которую_передана_tmp, 0, -1));
foreach($arr as $q) {
  $temp = explode("=", $q);
  $key = $temp[0];
  $value = $temp[1];
}

subzey 15.10.2010 11:24

Хм… а есть же .serialize().

$(".rp").serialize()


Часовой пояс GMT +3, время: 19:55.