ajax отправка одного файла из формы
Здравствуйте есть форма где циклом выводится несколько товаров и у каждого свой ид, как отправить через ajax ид конкретного товара
<form method="post" id="formtable"> <input type="hidden" id="prodid" name="prodid" value="'.$prodid.'"> <input type="submit" name="submit" value="удалить" class="butdelet"> </form> так все время отправляется ид последнего товара $('.butdelet').click(function(){ var msg = $('#formtable').serialize(); $.ajax({ type: 'POST', url: 'delet_processing.php', data: msg, success: function(data) { location.reload(); }, error: function(xhr, str){ alert('Возникла ошибка: ' + xhr.responseCode); } }) }); |
daimon0482,
var msg = $(this.form).serialize(); |
рони,
нет, тоже последний ид отправляется. |
получается в одну форму много
<input type="hidden" id="prodid" name="prodid" value="'.$prodid.'"> с одинаковым именем и у каждого есть кнопка удалить <input type="submit" name="submit" value="удалить" class="butdelet">тоже с одинаковым именем |
daimon0482,
не понимаю, ждите специалистов. |
Цитата:
|
может как то так переименовать, а дальше как это использовать name="prodpriceid'.$prodid.'"
|
Цитата:
|
так мне нужен один идентификатор, при нажатие на кнопку "удалить" чтобы на сервер ушел один идентификатор
|
надо кнопку удалить привязать к идентификатору скорее всего
|
<input type="submit" name="submit" iid="'.$prodid.'" value="удалить" class="butdelet">
возможно так |
Цитата:
Цитата:
В чем суть проблемы? |
возможно так пойдет
но нужно другой атрибут вместо .attr $('.butdelet').click(function(){ var iid = $(this).attr("iid"); $.ajax({ type: 'POST', url: 'delet_processing.php', data: "prodid="+iid, dataType:"html", cache: false,, success: function(data) { location.reload(); }, error: function(xhr, str){ alert('Возникла ошибка: ' + xhr.responseCode); } }) }); |
Выбросьте скрытые поля и кнопки submit, вместо них кнопки типа button, но так:
<button class="butdelet" type="button" value="'.$prodid.'">Del</button> В коде отправки: $('.butdelet').click(function(){ $.ajax({ type: 'POST', url: 'delet_processing.php', data: "prodid="+this.value, //...... |
laimas,
спасибо за помощь все работает. |
laimas,
как добавить тут еще одно поле <input type="hidden" id="orderid" name="orderid" value="'.$idorderes.'"> |
Это что, порядок его сортировки в таблице, который руками определяется?
|
laimas,
.$prodid. это был id продукта который хотим удалить, $idorderes это id заказа, чтобы удалить один из товаров надо знать его id и id заказа откуда будем удалять |
.$prodid. мы уже отправляем надо теперь как то зацепить и $idorderes
|
Не знаю из чего формируется страница, самих данных, но возможны два способа, в зависимости от структуры данных. Если в цикле и ID заказа, и ID товара в одном массиве, который доступен в каждой итерации, и они расположены в начале/конце его, то берем срез этого массива и помещаем в кнопку (в примере для случая когда они в конце):
<button class="butdelet" type="button" value="'.http_build_query(array_slice($arr, -2)).'">Del</button> где, $arr массив данных в итерации. Если, к примеру, это будут под ключами 'order'=>22 и 'id'=>12, то в итоге будет: <button class="butdelet" type="button" value="order=22&id=12">Del</button> Если такое не возможно, формируйте сами параметры запроса в цикле, как: <button class="butdelet" type="button" value="order='.$order.'&id='.$id.'">Del</button> Конкретные имена нужных вам ключей подставьте и будете получать нужное на сервере. JS код отправления менять не требуется. |
на странице $idorderes он один не в цикле
только товар в цикле выводится |
<button class="butdelet" type="button" value="order='.$order.'&id='.$id.'">Del</button> так вроде понятно все но сам js отправляет только "prodid="+this.value, может добавить "order"+"prodid="+this.value, |
key1=val&key2=val и т.д., это параметры url запроса, они прописаны будут в значении кнопки, их и добавлять. О "prodid="+ забыл, это нужно удалить из кода, должно остаться только this.value. И естественно, на сервере вставляйте свои ключи, не id, а prodid, не order, а чего-то...
|
laimas,
да работает спасибо большое. |
Часовой пояс GMT +3, время: 12:59. |