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, время: 22:58. |