С Новым годом! Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 6
1

Странное поведение click

22.06.2015, 11:42. Показов 424. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Есть динамическая таблица
допустим я создаю строки
номер строки значение
1 11111
2 22222
3 33333
4 44444
Если я нажимаю сохранить четвертую строку
сохраняется первая строка столько раз сколько создано строк
Если я нажимаю сохранить первую строку он ее нормально сохраняет, нажимаю после вторую, он уже сохранят и вторую и третью, третью нажимаю сохраняется 3,4,5 , Когда сохраняю последнюю, он записывает ее значение и + количество предыдущих строк со значением undefined

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <meta charset="utf-8" />
        <title></title>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
        <link href="css/jquery.autocomplete.css" rel="stylesheet" type="text/css" />
        <script type="text/javascript" src="js/jquery.autocomplete.pack.js"></script>
        <script type="text/javascript" src="js/script.js"></script>
        <script type="text/javascript" src="jquery.jqGrid.js"></script>
        <link rel="stylesheet" type="text/css" media="screen" href="themes/basic/grid.css" />
    <link rel="stylesheet" type="text/css" media="screen" href="themes/jqModal.css" />
    <link rel="stylesheet" type="text/css" media="screen" href="main.css" />
        <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<script type="text/javascript">
$(document).ready(function(){
$('.add').click(function(){
      var str = '<tr><td class="add1 del"><button >сохранить</button></td><td><input  action="#" id="country" class="container" name="ADDRESS" type="text" value="" align="LEFT" size="20" maxlength="20" autocomplete="off" /> </td><td><input id="abbr" name="CLIENT" type="text" value="" align="LEFT" size="20" maxlength="20" /></td><td><input id="calendar" name="DATE" value="" type="text"/></td><td><input id="vrem" name="TAME" type="text" value="" align="LEFT" size="20" maxlength="20" /></td><td><input id="vod" name="DRIVER" type="text" value="" align="LEFT" size="20" maxlength="20" autocomplete="off" /></td></td></td><td><input id="koment" name="COMMENTS" type="text" value="" align="LEFT" size="20" maxlength="20" /> </td><td class="del"><button >Удалить</button></td></tr>';
                  $(this).parent().after(str);
                  $(document).ready(function(){
$('#calendar').simpleDatepicker(); 
});
$('.del').click(function(){
          $(this).parent().remove();
             });
$(function(){
    $('#country').autocomplete('data.php?mode=sql', {
        width: 200,
        max: 5
    });
 
});
$(function(){
    $('#vod').autocomplete('data1.php?mode=sql1', {
        width: 200,
        max: 5
    });
 
}); 
 
  
             
                }); 
    return false;           
});
</script>
        <script type="text/javascript">
$(document).ready(function(){       
  $('.otg').click( function () {
    // получаем данные для отправки в БД из полей
    var DESCRIPTION = $('input[name=DESCRIPTION]', $(this).parent()).val();
     $(this).val("");
    $.ajax({
      type: "POST",
      url: "http://test4.ru/insert_data3.php",
      dataType: JSON,
      data: "&DESCRIPTION=" + DESCRIPTION,
           success: function() {
        alert("Запись добавленна");
      }
     
    });
  });
  });
  </script>
 <script type="text/javascript">
$(document).ready(function(){       
  $('.vodd').click( function () {
    // получаем данные для отправки в БД из полей
    var NAMED = $('input[name=NAMED]', $(this).parent()).val();
     $(this).val("");
    $.ajax({
      type: "POST",
      url: "http://test4.ru/insert_data4.php",
      dataType: JSON,
      data: "&NAMED=" + NAMED,
           success: function() {
        alert("Запись добавленна");
      }
     
    });
  });
  });
  </script>
  <script type="text/javascript">
$(document).ready(function(){
$('.add1').unbind().click( function () {
    // получаем данные для отправки в БД из полей
    var ADDRESS = $('input[name=ADDRESS]', $(this).parent()).val();
    var CLIENT = $('input[name=CLIENT]', $(this).parent()).val();
    var DATE = $('input[name=DATE]', $(this).parent()).val();
    var TAME = $('input[name=TAME]', $(this).parent()).val();
    var DRIVER = $('input[name=DRIVER]', $(this).parent()).val();
    var COMMENTS = $('input[name=COMMENTS]', $(this).parent()).val();
     $(this).parent().remove();
     return false;
     $(this).val("");
    $.ajax({
      type: "POST",
      url: "http://test4.ru/insert_data.php",
      dataType: JSON,
      data: "&ADDRESS=" + ADDRESS
           + "&CLIENT=" + CLIENT_ID
           + "&DATE=" + DATE
           + "&TAME=" + TAME
           + "&DRIVER=" + DRIVER
           + "&COMMENTS=" + COMMENTS,
           success: function() {
        alert("Запись добавленна");
        return false;
      }
     
    });
  });
  });
    </script>
    </head>
    <body>
       <div class="container">
            
            <table action="#"  align="left%" border="3" width="80%" height="50" cellpadding="10" bgcolor="#EDEAB9" bordercolorlight="#0E0101">
<tr id="partrow">
    <th class="add"><button >+</button>ID</th><th>Место разгрузки</th><th>Аббревиатуры в  разгрузке</th><th>Дата прибытия</th><th>Время прибытия</th><th>Водитель /телефон</th><th>Примечание</th>
    
    <table id="list" class="scroll"></table> 
    <div id="pager" class="scroll" style="text-align:center;"></div>
    <script type="text/javascript">
    $(window).load(function(){
        var lastSel;
        jQuery("#list").jqGrid({
            url:'getdata.php',
            datatype: 'json',
            mtype: 'POST',
            colNames:['#', 'Адрес разгрузки', 'Аббривеатуры', 'Дата разгрузки', 'Время разгрузки', 'Водитель/Телефон', 'Коментарий'],
            colModel :[
                {name:'ID', index:'ID', width:100}
                ,{name:'ADDRESS', index:'ADDRESS', width:200, align:'right', editable:true, edittype:"text"}
                ,{name:'CLIENT_ID', index:'CLIENT', width:180, editable:true, edittype:"text"}
                ,{name:'DATE', index:'DATE', width:150, editable:true, edittype:"text"}
                ,{name:'TAME', index:'TAME', width:150, editable:true, edittype:"text"}
                ,{name:'DRIVER', index:'DRIVER', width:150, editable:true, edittype:"text"}
                ,{name:'COMMENTS', index:'COMMENTS', width:150, align:'right', editable:true, edittype:"text"}
                ],
            pager: jQuery('#pager'),
            rowNum:5,
            rowList:[5,10,30],
            sortname: 'id',
            sortorder: "asc",
            viewrecords: true,
            imgpath: 'themes/basic/images',
            caption: 'Редактирование данных',
            ondblClickRow: function(id) {
                jQuery("#list").restoreRow(lastSel);
                jQuery("#list").editRow(id, true);
                lastSel = id;
            },
            onSelectRow: function(id) {
                jQuery("#list").restoreRow(lastSel);
            },
            editurl: 'saverow.php'
        }); 
    }); 
    </script> </tr> 
<table  align="left%" border="3" width="80%" height="50" cellpadding="10" bgcolor="#EDEAB9" bordercolorlight="#0E0101"> 
<tr><td class="otg"><button >Добавить Адрес</button></td><td><input   name="DESCRIPTION" type="text" value="" align="LEFT" size="100" maxlength="100" /> </td></tr>
<table  align="left%" border="3" width="80%" height="50" cellpadding="10" bgcolor="#EDEAB9" bordercolorlight="#0E0101"> 
<tr><td class="vodd"><button >Добавить Водителя</button></td><td><input   name="NAMED" type="text" value="" align="LEFT" size="100" maxlength="100" /> </td></tr>
        <footer>
<link rel="stylesheet" type="text/css" href="cal.css" />
            <script language="javascript" type="text/javascript" src="/cal.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#calendar').simpleDatepicker(); 
});
</script>
 
        </footer>
 
    </body>
</html>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.06.2015, 11:42
Ответы с готовыми решениями:

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

Странное поведение jQuery
В общем-то есть на странице пару простых чекбоксов c одним классом - пытаюсь достать их значение по...

Странное поведение вложенной функции
Добрый день! Ситуация следующая: есть табличка &lt;table border=&quot;1px&quot;&gt; &lt;thead&gt; ...

Странное поведение при делегировании
Доброй ночи, Господа. Пишу некую доп. функциональность к календарю, но дело, собственно, не в...

4
312 / 106 / 69
Регистрация: 18.04.2015
Сообщений: 346
22.06.2015, 17:49 2
Цитата Сообщение от voron543 Посмотреть сообщение
var DESCRIPTION = $('input[name=DESCRIPTION]', $(this).parent()).val();
Я так понимаю вот это отвечает за получение значения, и как по вашему оно должно передавать сразу 2 значения?

html код надо выкладывать вашей строки а не гору функций.
0
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 6
23.06.2015, 12:20  [ТС] 3
Цитата Сообщение от Armi Посмотреть сообщение
Я так понимаю вот это отвечает за получение значения, и как по вашему оно должно передавать сразу 2 значения?
html код надо выкладывать вашей строки а не гору функций.
нет не правильно
код передачи
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 <script type="text/javascript">
$(document).ready(function(){
$('.add1').unbind().click( function () {
    // получаем данные для отправки в БД из полей
    var ADDRESS = $('input[name=ADDRESS]', $(this).parent()).val();
    var CLIENT = $('input[name=CLIENT]', $(this).parent()).val();
    var DATE = $('input[name=DATE]', $(this).parent()).val();
    var TAME = $('input[name=TAME]', $(this).parent()).val();
    var DRIVER = $('input[name=DRIVER]', $(this).parent()).val();
    var COMMENTS = $('input[name=COMMENTS]', $(this).parent()).val();
     $(this).parent().remove();
     return false;
     $(this).val("");
    $.ajax({
      type: "POST",
      url: "http://test4.ru/insert_data.php",
      dataType: JSON,
      data: "&ADDRESS=" + ADDRESS
           + "&CLIENT=" + CLIENT_ID
           + "&DATE=" + DATE
           + "&TAME=" + TAME
           + "&DRIVER=" + DRIVER
           + "&COMMENTS=" + COMMENTS,
           success: function() {
        alert("Запись добавленна");
        return false;
      }
     
    });
  });
  });
    </script>
код динамической таблицы
Java
1
2
3
4
5
6
7
8
9
10
11
script type="text/javascript">
$(document).ready(function(){
$('.add').click(function(){
      var str = '<tr><td class="add1 del"><button >сохранить</button></td><td><input  action="#" id="country" class="container" name="ADDRESS" type="text" value="" align="LEFT" size="20" maxlength="20" autocomplete="off" /> </td><td><input id="abbr" name="CLIENT" type="text" value="" align="LEFT" size="20" maxlength="20" /></td><td><input id="calendar" name="DATE" value="" type="text"/></td><td><input id="vrem" name="TAME" type="text" value="" align="LEFT" size="20" maxlength="20" /></td><td><input id="vod" name="DRIVER" type="text" value="" align="LEFT" size="20" maxlength="20" autocomplete="off" /></td></td></td><td><input id="koment" name="COMMENTS" type="text" value="" align="LEFT" size="20" maxlength="20" /> </td><td class="del"><button >Удалить</button></td></tr>';
                  $(this).parent().after(str);
                  $(document).ready(function(){
$('#calendar').simpleDatepicker(); 
});
$('.del').click(function(){
          $(this).parent().remove();
             });
Добавлено через 53 секунды
Цитата Сообщение от Armi Посмотреть сообщение
Цитата Сообщение от voron543 Посмотреть сообщение
var DESCRIPTION = $('input[name=DESCRIPTION]', $(this).parent()).val();
Я так понимаю вот это отвечает за получение значения, и как по вашему оно должно передавать сразу 2 значения?
html код надо выкладывать вашей строки а не гору функций.
а вот это место как раз прекрастно работает

Добавлено через 15 часов 19 минут
Неужели никто не подскажет, как правильно прикрутить запрос к динамически создаваемой строке, что бы он отрабатывал только по ней
0
312 / 106 / 69
Регистрация: 18.04.2015
Сообщений: 346
23.06.2015, 21:10 4
html код нужен с уже набросанными строками без функции чтоб видеть общую структуру...
0
0 / 0 / 0
Регистрация: 07.05.2015
Сообщений: 6
24.06.2015, 12:22  [ТС] 5
Цитата Сообщение от Armi Посмотреть сообщение
html код нужен с уже набросанными строками без функции чтоб видеть общую структуру...
Дело в том, что таблицу генерирует JS, и где мне взять html код
хотя его структуру я уже приводил выше
Цитата Сообщение от voron543 Посмотреть сообщение
<tr><td class="add1 del"><button >сохранить</button></td><td><input action="#" id="country" class="container" name="ADDRESS" type="text" value="" align="LEFT" size="20" maxlength="20" autocomplete="off" /> </td><td><input id="abbr" name="CLIENT" type="text" value="" align="LEFT" size="20" maxlength="20" /></td><td><input id="calendar" name="DATE" value="" type="text"/></td><td><input id="vrem" name="TAME" type="text" value="" align="LEFT" size="20" maxlength="20" /></td><td><input id="vod" name="DRIVER" type="text" value="" align="LEFT" size="20" maxlength="20" autocomplete="off" /></td></td></td><td><input id="koment" name="COMMENTS" type="text" value="" align="LEFT" size="20" maxlength="20" /> </td><td class="del"><button >Удалить</button></td></tr>
0
24.06.2015, 12:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.06.2015, 12:22
Помогаю со студенческими работами здесь

странное поведение $.addClass методом
вот так все работает - анимация бекграунда в топ-меню &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta...

Странное поведение обработчика событий
Доброго всем времени суток. Сегодня наткнулся на необъяснимую для меня штуку. Коротко: Есть...

странное поведение Jquery и prompt()
Добрый день. У меня возникла довольно странная проблема с Jquery. Мне нужна была мини функция,...

Странное поведение - ajax + php + html/css
Здравствуйте! В целом я новичек в web-программировании. Опыт буквально несколько месяцев. Делаю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru