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

Редактирование данных из БД после фильтрации

04.03.2015, 15:46. Показов 676. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, Уважаемые гуру!
Подскажите решение, я организовал вывод данных из Mysql в html таблицу с помощью ajax запросов.
А благодаря jQuery выполняются различные функции, которые работают и одна из них - это фильтрация значений из колонок средствами ajax.
Javascript
1
2
3
4
5
6
7
8
9
10
11
//      функция поиска     
        $("input#searc").keyup(function(){
    input=$(this).val();
        if(input.length>2){
    sorting = 'sort_like_'+bd_name;
    data_mess = error_find_bd(selection_bd(str_amount,input,sorting,bd_name,table_name),no_data);
 
 
    $('tbody#top').html(data_mess);
    $('#container').hide();
    }                           });
А отфильтрованные данные уже пытаюсь редактировать с помощью функции, которая до фильтрации - работает, но после - перестает.
Javascript
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
// скрипт редактирования
$('[contenteditable="true"]')                 // редактируемый элемент
                           .mousedown(function (e)                       //  обрабатываем событие нажатие мышки 
                                    {  e.stopPropagation();                                
                                        elementclass    = $(this).attr('class');
                                        art_id          = $(this).closest('tr').find('.id_article').attr('id');
                                        ID_ART          = elementclass+'*'+art_id;      //  ID Элементов
                                        contentold[ID_ART]  =   $(this).text();        // текст до редактирования
                                        
                                        // запись старой реализации
                                        if(elementclass=='coefficient' && $(this).text() != ''){
                                        ID_PR               = 'price_sale_'+art_id;                                 
                                        contentold[ID_PR]   = $(this).closest('tr').find('.price_sale').text();
                                                                                                }
                                        
                                       $(this).bind('keydown', function(e) {         // обработчик нажатия Escape
                                                if(e.keyCode==27){
                                                    e.preventDefault();
                                                    $(this).text(contentold[ID_ART]);   // возвращаем текст до редактирования    
                                                    }
                                                });
                                      })
                            .keyup(function ()
                                        {   
                                        elementidsave   = $(this).closest('tr').find('.id_article').attr('id');     //  ID Товара
                                        elementclass    = $(this).attr('class');                                        //  Class элемента 
                                        contentsave     = $(this).text();                                                   //  Данные Элемента
                                        
                                        
                                        if(elementclass=='coefficient' && contentsave != '' && contentsave.length<4){
 
                                            price_purchase = parseInt($(this).closest('tr').find('.price_purchase').attr('id'));
                                            price_shipping = parseInt($(this).closest('tr').find('.price_shipping').attr('id'));
                                            contentsave = parseFloat(contentsave);
                                            itg = Math.round((price_purchase+price_shipping)*contentsave);
                                            $(this).closest('tr').find('.price_sale').text(numFormat(itg,'.',' ')+' руб.');
                                            $(this).closest('tr').find('.price_sale').attr('id',itg);
                                        
 
                                            
                                        }
                                        /*switch(elementclass){
                                            
                                            case 'name_commodity'   : m = contentsave.substr(0,254);    break;
                                            case 'coefficient'      : m = contentsave.substr(0,4);  if(m.match(/[.]/g).length == 1) { $(this).text(m);} break;
                                            case 'amount'           : m = contentsave.substr(0,4);  if(m.match(/[.]/g).length == 1) {$(this).text(m);}  break;
                                            
                                        }*/
                                        
                                    //alert('asd'+elementidsave);
                                        })
                            .keypress(function(e)
                                        {                                   
                                        elementidsave   = $(this).closest('tr').find('.id_article').attr('id');     //  ID Товара
                                        elementclass    = $(this).attr('class');                                        //  Class элемента 
                                        contentsave     = $(this).text();                                                   //  Данные Элемента
                                        
                                        if(elementclass == 'coefficient' || elementclass == 'amount'){                                      
  
    e = e || event;
  if (e.ctrlKey || e.altKey || e.metaKey) return;  
  var chr = getChar(e);
 
  // с null надо осторожно в неравенствах, 
  // т.к. например null >= '0' => true
  // на всякий случай лучше вынести проверку chr == null отдельно
  if (chr == null) return;
  if (chr < '0' || chr > '9' || chr == '.') {
    return false;
  }
                                        }
 
                                        })
                            .blur(function (event)                   //  обрабатываем событие потери фокуса
                            {
                                        elementidsave   = $(this).closest('tr').find('.id_article').attr('id');     //  ID Товара
                                        elementclass    = $(this).attr('class');                                        //  Class элемента 
                                        contentsave     = $(this).text();                                                   //  Данные Элемента
                                        ID_ART          = elementclass+'*'+elementidsave;                                       //  ID Элементов
                                        var ltr=$(this);
                                        event.stopImmediatePropagation();
                            //    if (elementid===elementidsave)    // если id не совпадает с id элемента, потерявшего фокус,
                                    if(contentsave == ''){  $(this).text(contentold[ID_ART]);   }   // проверка если пустое значение
                                    if (contentsave!=contentold[ID_ART] && contentsave != '' && contentold[ID_ART] != undefined )  // если текст изменился           
                                     {
                            alert_show();
                            jQuery.alerts.okButton = '&nbsp;Да&nbsp;';
                            jQuery.alerts.cancelButton = '&nbsp;Нет&nbsp;';
                            jConfirm("<h2 style='font-size:18px;color:red;'>Внести изменения?</h2>",' ',function(r){
                                
                                if(r == true){
                                    
                                                    savedata(ID_ART,contentsave);   // отправляем на сервер
                                    
                                }else{
                                    ltr.text(contentold[ID_ART]);
                                    if(elementclass == 'coefficient'){
                                        ID_PR               = 'price_sale_'+elementidsave;      //  ID Элементов
                                        ltr.closest('tr').find('.price_sale').text(contentold[ID_PR]);  
                                    }
                                    
                                }
                                jQuery('body').css("overflow","visible"); jQuery('.fon_alert').remove();
                            });
 
                                     }
 
                            });
Моих знаний работы JS не хватает чтоб понять причины.
Тем самым я думаю можно решить этот вопрос, занести все данные из БД в массив и после чего фильтровать, а редактированные данные записывать в БД и возможно редактирования от фильтрованных данных будет работать.
Возможно ли решить данную проблему не записывая данные в массив или это единственно верное решение!?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.03.2015, 15:46
Ответы с готовыми решениями:

Обновление reportViewer после фильтрации данных
Подскажите как обновить reportViewer в процессе работы отфильтровываются данные: ...

Экспорт данных в Excel после фильтрации
Экспорт из бд, данных в Excel после фильтрации, после фильтрации необходимо вывести те данные в...

В dataGridView занесены данные, сумма столбца подсчитывается верно, но после фильтрации данных сумма столбцов остаётся п
В dataGridView занесены данные, сумма столбца подсчитывается верно, но после фильтрации данных...

Запрет на редактирование данных после определенного времени
Добрый день! Есть многопользовательская база доставок на основании которой формируется график...

0
04.03.2015, 15:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.03.2015, 15:46
Помогаю со студенческими работами здесь

Редактирование данных после перехода из DBGrid на форму
Добрый день! Пишу программу, связанную с БД MS SQl Связываю через ADOQuery В ADOQuery прописан...

Запрет на редактирование личных данных после регистрации
&lt;TD vAlign=top&gt;&lt;FONT color=red&gt;*&lt;/FONT&gt;&lt;/TD&gt;&lt;TD&gt; Рефер: &lt;input...

Подсчет после фильтрации
Здравствуйте ребята, мне нужен ваш помощь очень очень Я сделал так ...

Нумерация после фильтрации
Подскажите как реализовать присвоение порядковой нумерации начиная с произвольного числа, для...


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

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