|
10 / 0 / 0
Регистрация: 30.08.2020
Сообщений: 6
|
|||||||||||
Добавить данные из формы в базу данных, используя AJAX.30.08.2020, 20:25. Показов 3221. Ответов 7
Метки нет (Все метки)
Я новичок,
Из базы данных берётся строка, заносится в таблицу, в которой кнопка, вызывая функцию PHP, динамически делает несколько новых строк с данными. Другая же кнопка строки передаёт методом "post" данные в функцию "insert()" внешнего "ajax.js". Всё отрабатывает чётко, когда строка статическая из базы данных. Но когда доходит до обработки динамических форм строки таблицы, имеющих один и тот же "id" - проблема. В итоговую форму вносится только самое первое значение. Вот фрагмент исходного файла PHP с кнопкой:
0
|
|||||||||||
| 30.08.2020, 20:25 | |
|
Ответы с готовыми решениями:
7
Php+ajax передаю данные формы в базу mysql Добавить данные с формы в базу MSSQL Как добавить добавить данные в базу данных посредством LINQ |
|
10 / 0 / 0
Регистрация: 30.08.2020
Сообщений: 6
|
|
| 31.08.2020, 16:28 [ТС] | |
|
Функция JS "insert()", в принципе, со своей задачей - получить комбинацию "id" и "value" и передать эти два параметра "aaa" и "bbb" в скрипт "ins.php" методом "get" справляется и скрипт "ins.php" данные в таблицу SQL вносит успешно. Только для динамических форм - заносится первое совпадение "id". Мне главное сделать эту манипуляцию без перезагрузки страницы. Если кто-то предложит более привычный для него метод это сделать - мне не обязательно привязываться именно к моему переделанному примеру.
0
|
|
|
10 / 0 / 0
Регистрация: 30.08.2020
Сообщений: 6
|
|
| 01.09.2020, 11:44 [ТС] | |
|
Пытаясь копать теорию, понимаю, что однотипные элементы нужно объединять в класс. И в JS не достаточно функции getElementById(), нужна типа getElementsByClassName() - может у кого есть идеи и опыт?
0
|
|
|
140 / 72 / 26
Регистрация: 29.06.2015
Сообщений: 186
|
||||||
| 01.09.2020, 20:36 | ||||||
Сообщение было отмечено DrType как решение
Решение
Вы правы, нужно как-то их обьединить, лучше всего, в даном случае, воспользоватся name и в него записывать сгенерированное значение: для первой строки - aaa_1 и bbb_1, для второй aaa_2 и bbb_2 и т. д.
Поиск таких елементов будет зависить от структуры вашего html кода. И потом циклом вычитать эти данные. Как образом Вы выводите на страницу данные из базы? Как выглядит html разметка? Кнопка submit одна для всех значений? Почему инпуты hidden?
1
|
||||||
|
10 / 0 / 0
Регистрация: 30.08.2020
Сообщений: 6
|
|
| 01.09.2020, 21:45 [ТС] | |
|
irises, спасибо что откликнулись и даёте наводку.
Из базы данных просто по уникальному ключу на отдельную php-страничку достаётся строка для дальнейших преобоазований с порядка восьми столбиками данных и тегами <tr><td>...</td></tr>. В данной строке добавил две кнопки: одна вызывает функцию PHP, которая делает преобразования и динамически результат выводит в виде один в один таких же строк с кнопками. Вторая кнопка строки (листинг прикреплён выше) во внешний "ajax.js" передаёт значения двух полей. Hidden - потому что одни и те же данные "aaa" и "bbb" используются функцией преобразования на этой же странице (кнопка-1), и нужны для передачи на внешний JS-файл (кнопка-2). Получаются по две кнопки для каждой строки. Если функция кнопки-1 делает одну дополнительную строку - всё хорошо, т.к. "id" - в этом случае уникален и кнопка-2 передаёт нужную комбинацию "id"/"value". А если несколько строк - проблема, т.к. "id" - одинаковый. Вот ломаю голову как к id добавить, например, ..._1, _2. Может попробовать создать физический массив функцией "foreach" и попробовать подвязать счётчик к "id_"? Что-то топчусь на месте, надо завтра на свежую голову... Добавлено через 11 минут Пробовал в тег <td> добавить, например class='nnn'. А в JS скрипте если строку привести к виду: var aaa= encodeURI(document.getElementsByClassNam e('nnn')[i].value); то меняя значение "i" (0,1...) можно получить данные нужной строки. Но вот как это значение сопоставить с номером строки, где нажата кнопка_2?
0
|
|
|
140 / 72 / 26
Регистрация: 29.06.2015
Сообщений: 186
|
||
| 01.09.2020, 21:48 | ||
|
И касательно всего что Вы написали - лучшим способом будет продемонстрировать Ваш код и местами за необходимости прокоментировать его, чтоб остальные поняли чего Вы хотите или в чем Ваша идея. Таким образом можна более комплексно решить проблему с указанием на все слабые места (и более быстро ).
1
|
||
|
10 / 0 / 0
Регистрация: 30.08.2020
Сообщений: 6
|
|||||||||||
| 02.09.2020, 09:25 [ТС] | |||||||||||
|
Код думаю что далёк от оптимального, многое сделано методом проб и переделки примеров под себя, но, вцелом, всё работает.
Думаю откинуть шапку, саму функцию "fun_1" и упрощённо показать как ею формируются динамические строки с данными. В принципе, параметр "aaa" будет одинаков и он передастся правильно, а вот параметр "bbb" формирует функция и нужно как-то сделать ему id уникальным. Т.е. мне надо на JS передать один динамически сформированный параметр:
0
|
|||||||||||
|
10 / 0 / 0
Регистрация: 30.08.2020
Сообщений: 6
|
||||||
| 02.09.2020, 22:16 [ТС] | ||||||
|
Добавил счётчик на страничку php ($ii), дописал переменную в value динамической кнопки для контроля. Проверил, теперь динамические кнопки имеют разные "value": bbb1, bbb2, bbb3... . Этот же составной параметр вписал в поля "id" и "name". Получается, если поля "id", "name", "value" по синтаксису не отличаются - я получил уникальные "id": bbb1, bbb2, bbb3... равные "value" динамических кнопок. Меня интересует только один параметр "bbb"
Тут опять упёрся пока( Добавлено через 4 часа 1 минуту Может на кнопку (строка 5) повесить тоже уникальный "id"+счётчик и свести задачу к получению "id" нажатой кнопки в JS? Хоть в динамических формах у меня "id" уже уникальные (+счётчик), не так всё просто - надо как-то в JS узнать какой именно "id" обрабатывать. Т.е. какая из кнопок нажата... Не подскажете вариант решения? Добавлено через 13 минут Вернее "id" нажатой кнопки получить несложно на этой же странице, но надо получить во внешний файл .js Добавлено через 1 час 0 минут Вот так... рассуждая вслух решил проблему!!! 1) Id кнопки записал в глобальную переменную JS 2) Во внешнем JS получил эту переменную, она же id нажатой кнопки, она же id нужного input Спасибо irises, за общее направление вектора куда копать) Тему можно закрывать
0
|
||||||
| 02.09.2020, 22:16 | |
|
Помогаю со студенческими работами здесь
8
Сохранение формы через ajax с записью файла в базу данных Вставка записей из формы в базу данных через jQuery-AJAX Запись данных в базу без обновления всей формы (jquery+ajax)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|