Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
jQuery, AJAX - проблема с доступом к DOM элементам
|
|||
|---|---|---|---|
|
#18+
Добрый день! Начну с того, что довольно длительное время занимаюсь программированием server-side, а вот как то обработки на стороне клиента для меня сводились к каким-то банальным задачам-проверкам. Сейчас задача чуть посложнее (для человека, далекого от jQuery), зашел в тупик... По идее это интерфейс управления базой данных. В упрощенном виде имеем следующее: Данные из БД выводятся построчно, каждая строка - это форма с уникальным ID (равному ID записи в MySQL). В каждой строке есть ячейка с INPUTом, рядом ссылка "сохранить" (вызывающая функцию-обработчик): Код: html 1. 2. 3. 4. 5. 6. 7. 8. По идее, всё, что мне надо - это после ввода цены и нажатия сохранить, обработать данные AJAX, сохранить изменения в БД и заменить без обновления данные в ячейке (содержимое span id="price"). Казалось бы банально, но упёрся не могу решить! С одной формой проблем, естественно, никаких! А вот как в моем случае быть, когда форма в каждой строке своя? Мне надо добраться FORM с нужным ID -> span -> price (пробовал кучу вариантов из примеров - не получается) Обработчик такой (неправильный мой): Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Знатоки jQuery, выручайте! Как правильно сделать? Может span id уникальным если сделать, то как то просто можно решить (так же взяв за основу ID записи из таблицы БД)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2016, 13:35 |
|
||
|
jQuery, AJAX - проблема с доступом к DOM элементам
|
|||
|---|---|---|---|
|
#18+
Тупой!, давайте начнем с того, что элементы необходимо закрывать соответствующим образом: Код: html 1. А также используйте только один элемент form на странице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2016, 13:46 |
|
||
|
jQuery, AJAX - проблема с доступом к DOM элементам
|
|||
|---|---|---|---|
|
#18+
Затем заверните повторяющийся набор контролов Input и Save button в div, пронумеруйте его Id и соответсвенно передавайте в Javascript для дальнейшей обработки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2016, 13:48 |
|
||
|
jQuery, AJAX - проблема с доступом к DOM элементам
|
|||
|---|---|---|---|
|
#18+
AxeleronТупой!, давайте начнем с того, что элементы необходимо закрывать соответствующим образом: Код: html 1. А также используйте только один элемент form на странице. Спешил, волновался... И порядок то кривой, обычно type, name, value :) Кстати, незакрытый элемент это сильно плохо для jQuery? Просто на функционале никогда не сказывалось... Раньше и не было такого явления, как например <br /> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2016, 13:56 |
|
||
|
jQuery, AJAX - проблема с доступом к DOM элементам
|
|||
|---|---|---|---|
|
#18+
Тупой!Кстати, незакрытый элемент это сильно плохо для jQuery? Это может негативно повлиять на кросс-браузерную совместимость, непредсказуемый рендеринг одних и тех же страниц в разных браузерах, ну и проблемы с применением CSS. Потом придется долго искать где косяк, а косяк будет в незакрытом элементе. Оно Вам надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2016, 14:06 |
|
||
|
jQuery, AJAX - проблема с доступом к DOM элементам
|
|||
|---|---|---|---|
|
#18+
Тупой!, синтаксический анализатор HTML, каждого браузера, имеет свои внутренние правила при разборе, например вложенный элемент form в другой form будет игнорироваться, <br/> тоже обрабатывается и достраивается до валидного. Т.е. браузер не выдаст страницу с надписью "не валидный синтакис" если вы забудете закрыть пару тегов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2016, 14:07 |
|
||
|
jQuery, AJAX - проблема с доступом к DOM элементам
|
|||
|---|---|---|---|
|
#18+
Тупой!... В упрощенном виде имеем следующее: Данные из БД выводятся построчно, каждая строка - это форма с уникальным ID (равному ID записи в MySQL). В каждой строке есть ячейка с INPUTом, рядом ссылка "сохранить" (вызывающая функцию-обработчик): Код: html 1. 2. 3. 4. 5. 6. 7. 8. По идее, всё, что мне надо - это после ввода цены и нажатия сохранить, обработать данные AJAX, сохранить изменения в БД и заменить без обновления данные в ячейке (содержимое span id="price"). Казалось бы банально, но упёрся не могу решить! С одной формой проблем, естественно, никаких! А вот как в моем случае быть, когда форма в каждой строке своя? Мне надо добраться FORM с нужным ID -> span -> price (пробовал кучу вариантов из примеров - не получается) ... Первое - режет глаз onclick="javascript:saveMoney()" - просто onclick="saveMoney()" Второе - если используем jQuery и XHR, то в таком ключе формы вообще нафиг нужны: onclick="saveMoney(27800). Возникает вопрос - если форм, как вы пишете много, то что такое <span id="price">, он в других формах как-то иначе назван? И зачем эта обертка вообще нужна? Третье - опять-же если jQ, то якорь тоже не нужен. Разметку которую вы привели можно обработать, но лучше ее изменить: Код: html 1. 2. 3. 4. 5. 6. 7. Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Примечание: в классе "save" элемента span определяем всё что нужно - картинку бэкграундом, стиль надписи и т.п. методы done(), fail(), always() можно не использовать, это для сведения и расширения функционала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2016, 16:27 |
|
||
|
jQuery, AJAX - проблема с доступом к DOM элементам
|
|||
|---|---|---|---|
|
#18+
Добавка: элемент <input name="operation" value="income" type="hidden"> тоже уже не нужен, необходимые данные пропихиваем через функцию или "зашиваем" в текстовый input через data- атрибуты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2016, 16:36 |
|
||
|
jQuery, AJAX - проблема с доступом к DOM элементам
|
|||
|---|---|---|---|
|
#18+
Молчал - отдыхать уезжал. Фёдор К, огромное Вам спасибо!!!! Вы помогли мне гораздо больше, чем просто решить данную конкретную задачу... Суть понял! :) Всё просто же на самом деле... :) Мои знания 2000х годов безнадежно устарели! :) Задачу реализовал без единой формы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2016, 17:37 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=39290332&tid=1445046]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 147ms |

| 0 / 0 |
