Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.05.2015, 09:56
Новичок на форуме
Отправить личное сообщение для LAOS Посмотреть профиль Найти все сообщения от LAOS
 
Регистрация: 28.05.2015
Сообщений: 2

Отправка формы через ajax, не могу найти ошибку
Доброго времени суток. Ну судите за быдлокодниг - всего пару дней как начал работать с jquery. И так, есть таблица с ячейками class="cell" и есть код:
<script type="text/javascript">

$(document).ready(function(){
$(".cell").click(function(){
var edt = $(this);
var edth =$(this).html();
var list = $(this).find('textarea');
if (list.length == 0) {
var nid =$(this).attr("id")

$(this).html('<form id="form'+ nid +'"><input type="hidden" name="celladdr" value="' + nid + '"> <textarea name="f'+ nid +'"cols=25 row="4">' + edth + '</textarea></form><img class="sb" src="save.png">')
$('.sb').on('click', function(){
var save = $(this).parent().html();

var msg = $('#form'+nid).serialize();
$.ajax({
type: 'POST',
url: 'mod.php',
data: msg,
success: function(data) {
alert(data);
$(edt).html(data);
},
error: function(xhr, str){
alert('Возникла ошибка: ' + xhr.responseCode);
}
});

});

}
});

</script>
Собственно алгоритм такой, при клике по ячейке, в ячейке появляется textarea в который уже вбито значение ячейки и кнопка для сохранения - изображение class="sb". По клику на class="sb" происходит отправка формы из ячейки с помощью ajax. Всё работает. Но есть одно хреновое НО. При кликах поочерёдно по нескольким ячейкам, и после этого при нажатии кнопки сохранения происходит отправка всех редактируемых ячеек, хотя они находятся в разных формах. А нужно отправлять по одной. Помогите, а то к концу недели забухаю от безисходности.))

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

Код нужно форматировать, читать его неудобно.

А зачем в каждую ячейку по собственной форме для одного поля? Может быть форма все-таки одна, а поля в нее добавляются?
Ответить с цитированием
  #3 (permalink)  
Старый 28.05.2015, 10:39
Новичок на форуме
Отправить личное сообщение для LAOS Посмотреть профиль Найти все сообщения от LAOS
 
Регистрация: 28.05.2015
Сообщений: 2

Задача -изменять только одну ячейку, без изменения всей строки. А форматирование форум съел.
Собственно, проблема в том, что при одновременном редактировании нескольких ячеек и нажатии кнопки сохранения в любой из них, начинают последовательно отравляться все формы из редактируемых ячеек причём в каком-то диком порядке

Последний раз редактировалось LAOS, 28.05.2015 в 10:47.
Ответить с цитированием
  #4 (permalink)  
Старый 28.05.2015, 12:08
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от LAOS
проблема в том, что при одновременном редактировании нескольких ячеек и нажатии кнопки сохранения в любой из них, начинают последовательно отравляться все формы
Так я о чем и говорю, нахрена куча форм, да которые еще по щелчку отправляются?
Ответить с цитированием
  #5 (permalink)  
Старый 28.05.2015, 12:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Сообщение от LAOS
А форматирование форум съел.
ой
<script type="text/javascript">

 $(document).ready(function(){
 $(".cell").click(function(){
 var edt = $(this);
 var edth =$(this).html();
 var list = $(this).find('textarea');
 if (list.length == 0) {
 var nid =$(this).attr("id")

 $(this).html('<form id="form'+ nid +'"><input type="hidden" name="celladdr" value="' + nid + '"> <textarea name="f'+ nid +'"cols=25 row="4">' + edth + '</textarea></form><img class="sb" src="save.png">')
 $('.sb').on('click', function(){
 var save = $(this).parent().html();

 var msg = $('#form'+nid).serialize();
 $.ajax({
 type: 'POST',
 url: 'mod.php',
 data: msg,
 success: function(data) {
 alert(data);
 $(edt).html(data);
 },
 error: function(xhr, str){
 alert('Возникла ошибка: ' + xhr.responseCode);
 }
 });

 });

 }
 });

 </script>
Ответить с цитированием
  #6 (permalink)  
Старый 28.05.2015, 12:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

LAOS,
прокол в строке 12
$('.sb', this).on('click',
добавьте красное иначе при каждом клике вы умножаите прежние клики
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При отправке через ajax не открывается файл-адресат temuch-13 AJAX и COMET 6 09.07.2014 17:03
отправка ajax формы iskander83 Элементы интерфейса 2 19.05.2013 16:33
Отправка формы по ENTER (ajax) и перенос строки VEGA jQuery 18 01.03.2013 14:09
никак не могу найти ошибку. наследование AmniCat Events/DOM/Window 3 17.11.2011 00:50
не могу найти ошибку в коде MasterP Общие вопросы Javascript 1 03.07.2011 02:54