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

Обновление данных в таблице используя Jquery, Ajax, Php и MySQL

10.06.2019, 00:06. Показов 4121. Ответов 3

Студворк — интернет-сервис помощи студентам
Всем привет, друзья!!

Буду признателен за вашу помощь!

Ситуация такая:

Есть страница на которой есть таблицы с данными из БД. Таблиц может быть сколько угодно.зависит от пользователя который их постит. Выводятся они через цикл while. В данном случае у меня 2 таблицы и у каждой таблицы свой id.

Я хочу чтобы пользователь заходил на эту страницу и мог редактировать данные в каждой из свих постов-таблиц, соответственно чтобы данные в БД тоже изменялись.

Сейчас использую следующий метод:

PHP/HTML
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
<?php       
    while ($row = mysqli_fetch_array($result_set)):;
?>
                
<table class="myTable" cellspacing="5"> 
    <tbody>
        <tr id="<?php echo $row['id'];?>">
            <th>Title</th>
            <td data-target="title" class="title"><b><?php echo $row['title'];?></b></td>
                </tr>
        <tr>
            <th>Description</th>
            <td data-target="description"><p class="description" align="justify"><?php echo $row['description'];?></p></td>
        </tr>   
        <tr>
            <th>Phone number</th>
            <td data-target="tel"><?php echo $row['tel'];?></td>
        </tr>
        <tr>
            <th>---</th>
            <td><a href="#" data-role="update" data-id="<?php echo $row['id'];?>">Update</a></td>
        </tr>
        
        </tbody>        
</table>
  <?php endwhile;?>
 
 
 
<!-- Bootstrap Modal -->
<div id="myModal" class="modal fade" role="dialog">
  <div class="modal-dialog">
 
    <!-- Modal content-->
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">&times;</button>
        <h4 class="modal-title">Modal Header</h4>
      </div>
      <div class="modal-body" align="center">
        <div class="form-group">
            <label>Title</label>
            <textarea id="title" name = "title" rows = "1" cols = "60" required></textarea>
        </div>
        <div class="form-group">
            <label>Description</label>
            <textarea id="description" name = "description" rows = "20" cols = "60" required></textarea>
        </div>
        <div class="form-group">
            <label>Phone number (optional)</label>
            <input type="text" id="tel" name="tel"/>
        </div>
      </div>
      <div class="modal-footer">
        <a href="#" id="save" class="btn btn-primary pull-right">Update</a>
    <button type="button" class="btn btn-default pull-left" data-dismiss="modal">Close</button>
      </div>
    </div>
 
  </div>
</div>
И вот в скрипте ниже у меня загвоздка!!

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$(document).ready(function(){
    $(document).on('click','a[data-role=update]',function(){
    var id = $(this).data('id');
    var title =  $('#'+id).children('td[data-target=title]').text();
    var description = $('#'+id).children('td[data-target=description]').text();
    var tel = $('#'+id).children('td[data-target=tel]').text();
    
    
    $('#title').val(title);
    $('#description').val(description);
    $('#tel').val(tel);
    $('#myModal').modal('toggle');
    
})
});
ВОТ тут я и застрял! При нажатии на кнопку Update выходит, что только в поле Title появляется запсиь.
В других полях не появляется! И я вроде знаю почему, потому что children возвращает значение прямого потомка.
А стваить один и тот же id="<?php echo $row['id'];?>" в каждый tr нельзя.


В общем я не спец в JS и прошу прощения если глупые вещи пишу, так же за некрасивый код извиняюсь (учусь только).

Но мне нужно чтобы, при нажатии на Update всплывал Bootstrap Modal и в каждом поле появлялась запись из таблицы.
Причем при нажадии на Update 1-й таблицы появлялись ее записи, при нажатии на 2-ю таблицу соотвественно записи 2-й таблицы!


Буду очень рад помощи!

Спасибо за время и внимание!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.06.2019, 00:06
Ответы с готовыми решениями:

Проблема с Jquery --> Ajax --> php
Jquery часть (here all is right !!!): var mess_str= &quot;nick =&quot;+nick+&quot;&amp;mess =&quot;+mess; $.ajax ({ type: 'POST', ...

PHP+jQuery+AJAX+JSON+MySQL
Здравствуйте!!! Помогите пожалуйста! Начала изучать ajax, понадобилось мне это в связи с написанием диплома. Мне необходимо прикрепить...

Связанные выпадающие списки с записями из базы данных JQuery-AJAX + PHP
Добрый день! Требуется на сайте для стоматологического кабинета создать скрипт для связанных выпадающих списков. При выборе врачебной...

3
68 / 60 / 10
Регистрация: 07.03.2019
Сообщений: 657
10.06.2019, 13:15
доступ к элементам нужно получать от родителя в данной ситуации
0
1 / 1 / 0
Регистрация: 17.02.2019
Сообщений: 9
10.06.2019, 15:48  [ТС]
То есть вы имеете ввиду, что мне лучше изменить структуру таблицы?

Если да, то увы...мне нужна именно такая структура таблицы которую я описал выше.

Может есть другие варианты?
0
1 / 1 / 0
Регистрация: 17.02.2019
Сообщений: 9
27.06.2019, 12:30  [ТС]
ЕСЛИ КОМУ-ТО ВДРУГ ПОНАДОБИТЬСЯ, ТО ВОТ РЕШЕНИЕ!

ОДИН ДОБРЫЙ ЧЕЛОВЕК ПОМОГ!

Вот его ответ:

Your problem is caused because the elements are not immediate children of #id. So you have to target a different element to start with. And then, since they are descendants (not children), use a different function that can find them.

А вот его КОД:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
$(document).ready(function() {
  $(document).on('click', 'a[data-role=update]', function() {
    var $body = $(this).closest('tbody');
    var title = $body.find('td[data-target=title]').text().trim();
    var description = $body.find('td[data-target=description]').text().trim();
    var tel = $body.find('td[data-target=tel]').text().trim();
 
    $('#title').val(title);
    $('#description').val(description);
    $('#tel').val(tel);
  })
});
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
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>
<table class="myTable" cellspacing="5">
  <tbody>
    <tr id="1">
      <th>Title</th>
      <td data-target="title" class="title">
        <b>Title</b></td>
    </tr>
    <tr>
      <th>Description</th>
      <td data-target="description">
        <p class="description" align="justify">
          Description
        </p>
      </td>
    </tr>
    <tr>
      <th>Phone number</th>
      <td data-target="tel">
        Phone
      </td>
    </tr>
    <tr>
      <th>---</th>
      <td><a href="#" data-role="update" data-id="1">Update</a></td>
    </tr>
 
  </tbody>
</table>
 
 
<div class="form-group">
  <label>Title</label>
  <textarea id="title" name="title" rows="1" cols="60" required></textarea>
</div>
<div class="form-group">
  <label>Description</label>
  <textarea id="description" name="description" rows="20" cols="60" required></textarea>
</div>
<div class="form-group">
  <label>Phone number (optional)</label>
  <input type="text" id="tel" name="tel" />
</div>
</div>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.06.2019, 12:30
Помогаю со студенческими работами здесь

Удаление данных с MySQL + Ajax + PHP
Сделал удаление данных с бд, с помощью ajax Источник http://makitweb.com/how-to-delete-record-from-mysql-table-with-ajax/ Все прекрасно...

JQuery, Ajax и PHP
Из прочитанных материалов я не смог разобраться, как заставить скрипт работать. Помогите, пожалуйста. Задача такая: из формы взять...

jQuery, Ajax, Php radio button
Здравствуйте! jQuery, Ajax только начинаю изучать. Подскажите пожалуйста, как в зависимости от выбранного радио-баттона подгружать...

JQuery ajax запрос и php ответ
Предполагается, что получив от сервера ответ JS выведет логин, добавив его в тело страницы. Почему связка запрос-ответ не работает? Консоль...

POST запрос jQuery + Ajax + PHP
Не могу немного понять как выполнять такие запросы, понял как возвращать html объект а вот простую переменную не пойму как возвращать ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru