Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Через ajax отправить много данных из таблицы на сервер (https://javascript.ru/forum/jquery/24389-cherez-ajax-otpravit-mnogo-dannykh-iz-tablicy-na-server.html)

Heger 28.12.2011 03:44

Через ajax отправить много данных из таблицы на сервер
 
Здравствуйте, прошу помощи, очень надо, сам думал думал, но так и не додумался. Есть две таблицы:

Таблица 1:

<table align="center" id="list_table" width="93%" border="1" align="center" cellpadding="0" cellspacing="0">
            <tr>
            <th align="right" colspan="3">Текст</th><th colspan="3">текст</th>
            </tr>
<tr>
<td>Товар 1</td>
<td>Цена товара 1</td>
<td><input id="idTovara" name="kolichestvoNewTable" type="text" value="kolichestvo" size="1%">инпут с количеством товара 1</td>
<td>сумма товара 1</td>
<td><input name="delete" type="image" src="img/delete.jpg" alt="Удалить позицию"></td>
<td>td2</td>
</tr>            
<tr>
<td>Товар 2</td>
<td>Цена товара 2</td>
<td><input id="idTovara" name="kolichestvoNewTable" type="text" value="kolichestvo" size="1%">инпут с количеством товара 2</td>
<td>сумма товара 2</td>
<td><input name="delete" type="image" src="img/delete.jpg" alt="Удалить позицию"></td>
<td>td2</td>
</tr>
           <tr>
            <td colspan="3" align="right">Общая сумма:</td>
            <td colspan="4" id="summAll"></td>                               
            </tr>          
          </table>
          <br>         
          

Таблица 2

<table align="center" id="addNReg" width="93%" border="1" align="center" cellpadding="0" cellspacing="0">
          <tr>
          <td align="right"><input class="addTo" name="Add" type="button" value="Добавить в корзину"></td>
          </tr>
          <tr>
          <td align="right">
<p>Логин:<input name="login" type="text" size="10" maxlength="15">
 Пароль: <input name="password" type="password" size="10" maxlength="15"></p>
<p><input name="RegQuickAdd" type="submit" value="Зарегистрироваться и добавить в корзину"></p>
</td>
</tr>
</table>


==================================
на сервере таблица с такими полями:
id_klienta id_zakaza id_tovara kolichestvo cena status_zakaza
============================================

Задача в том чтобы при нажатии на инпут RegQuickAdd из таблицы 2 пользователь регистрировался, сразу же входил на сайт под своими логином и паролем и сразу же данные из таблицы 1 отправлялись на сервер в нужные поля. Регистрацию и вход используя сессии я уже сделал, это работает, но не решенная задача:
---отправить много данных из таблицы 1 на сервер используя запрос ajax--
в инете много примеров, но они простые, просто отправить одну строку не сложно, но если здесь много строк? в примере 2 строки, но в реале их может быть n-e количество. Сейчас нужно чтобы заполнить данными из таблицы 1 поля на сервере id_klienta (он есть в переменной искать его не нужно), id_tovara (переменная idTovara в инпуте где количество товара id="idTovara", для каждой строки разная), kolichestvo и cena тоже разные для каждой строки.

Как мне отобрать каждый tr, данные из его td впихнуть в ajax запрос так чтобы на сервере все стало по своим местам? При этом таких tr может быть много и добавляются они на стороне пользователя, так что как я понял чтобы их обрабатывать нужно использовать delegate.

Мои предполагаемые варианты решения:
1. Как-то перебрать столбцы через функцию each, получить массив и как-то это все сделать - не знаю)
2. Посчитать количество tr через length, потом обратиться к каждому tr и по очереди через цикл отправлять данные - как реализовать тоже не знаю.
Вобщем я запутался, гугл не помог, там везде простые запросы одной строки, такое я могу сделать, но тут нужно посложнее. Вобщем помогите начинающему)

MadGest 29.12.2011 21:53

По поводу отправки большого количества данных, возможно формат json тебе подойдет. Остальные вопросы не понял)))

idkvik 31.12.2011 05:19

$.post( url, [данные], [вызов], [тип] )

[данные]-или пара key:attrib, или ассоциативный массив с вложенными данными.

Heger 29.08.2012 17:51

Спасибо за ответы, но решил проблему аджаксом, данные не собирал в кучу, а загружал на сервер интерактивно.


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