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

Как правильно отправить данные к нескольким div из js

31.07.2023, 15:57. Показов 1462. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не могу никак доработать вывод трёх пагинаций на одну страницу. Дело в том, что все три они корректно выводятся и вставляются в свои блоки, а вот если мне нужно вставить только 2ую пагинацию из 3х, то она вставляется по умолчанию в 1ый ul когда надо во 2ой. Это нужно для ajax. Вот html:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$result = R::getAll("SELECT * FROM menu ORDER BY id");
 
foreach ($result as $row) {
  $cat[] = "<input name='news_cat' type='hidden' value='".$row["id"]."' />".$row["name"]."<br/>";
}
?>
 
<div class="hs-categ"><?= $cat[0] ?>
   <ul class="pagcat">
 
   </ul>
</div>
<div class="hs-categ"><?= $cat[1] ?>
   <ul class="pagcat">
 
   </ul>
</div>
<div class="hs-categ"><?= $cat[2] ?>
   <ul class="pagcat">
 
   </ul>
</div>
А вот данные, которые передаются через ajax
PHP
1
2
3
4
5
6
7
8
9
10
11
12
Array
(
    [0] => 3
)
Array
(
    [0] => 2
)
Array
(
    [0] => 2
)
Изначальный вариант js, когда выводятся пагинации все сразу
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
success: function (response) {
const { output } = JSON.parse(response);
$('.hs-categ').each(function (i) {
    //вывод из бд номеров пагинаций
        var pagcat = $(this).find('.pagcat');
        output[i].forEach(function (page) //перебор и вывод списка пагинаций
        {
            const pag = getItemPAG(page);
            pagcat.empty().append(pag); //очищаем старую и добавляем новую выборку статей и пагинаций
        });
});
 
function getItemPAG(page)
{
    const pagHTML = `
        <div id="pagelink">${page}</div>`;
 
    return pagHTML;
}
Нерабочий вариант. В этом js я пытался передать значение только в второй блок .pagcat через метод eq(), но что-то не получилось.
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
success: function (response) {
const { output } = JSON.parse(response);
$('.hs-categ').each(function (i) {
    //вывод из бд номеров пагинаций
        var arr = [1];
        var pagcat = $(this).find('.pagcat');
        output[i].forEach(arr, function (page, e) //перебор и вывод списка пагинаций
        {
            const pag = getItemPAG(page);
            pagcat.empty().eq(e).append(pag); //очищаем старую и добавляем новую выборку статей и пагинаций
        });
});
 
function getItemPAG(page)
{
    const pagHTML = `
        <div id="pagelink">${page}</div>`;
 
    return pagHTML;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.07.2023, 15:57
Ответы с готовыми решениями:

Как отправить файлы на сервер по нажатию по кнопке минуя событие change, и как отправить вместе с файлом другие данные?
Проблема в том что как только устанавливаются файлы для отправки они сразу-же отправляются, я так понимаю связано это с событием change,...

Как отправить письмо нескольким получателям?
До этого никогда не сталкивался с подобными скриптами, кто может подсказать как добавить в скрипт несколько получателей? # coding: utf-8...

Как отправить письма нескольким сотням получателей?
Парни! Подскажите, как решить вопрос. Есть почтовый ящик (варианты: gmail, mail.ru, частный сервер). Нужно с него отправить письма...

21
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
01.08.2023, 10:31
dataset для ul не предлагать?
0
1 / 1 / 0
Регистрация: 04.03.2023
Сообщений: 129
01.08.2023, 14:33  [ТС]
pincet, если это решит мою проблему, то почему бы и нет. Тогда придется вручную присваивать номер каждому новому блоку ul?
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
01.08.2023, 15:13
а как еще различить твои дивы/улы?
0
1 / 1 / 0
Регистрация: 04.03.2023
Сообщений: 129
01.08.2023, 15:33  [ТС]
pincet, не знаю. Я пробовал метод .eq()
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
01.08.2023, 15:54
Цитата Сообщение от Eclipse19 Посмотреть сообщение
Я пробовал метод .eq()
ну, с jQuery не помогу. но решение даже на уровне концепта реально попахивает

Добавлено через 53 секунды
на пыхе заготовил что-то, помечтал и решил, что все будет работать на фронте
0
 Аватар для klyapa
3503 / 1267 / 429
Регистрация: 24.07.2016
Сообщений: 1,890
01.08.2023, 21:50
Цитата Сообщение от Eclipse19 Посмотреть сообщение
А вот данные, которые передаются через ajax
PHP
1
2
3
4
5
6
7
8
9
10
11
12
Array
(
    [0] => 3
)
Array
(
    [0] => 2
)
Array
(
    [0] => 2
)
....
JavaScript
1
const { output } = JSON.parse(response);
А что это за данные такие корявые? У вас что, в переменной output вложенный массив просто с одним числом в массиве?
JavaScript
1
[[3], [2], [2]] // так что ли? ... и что это за цифры? что они означают?
Зачем вы всё это в цикле перебираете, когда есть естественная нумерация (индексы в массиве/коллекции элементов) и можно нужно просто достать элемент по индексу и сунуть в него вот эту строку `<div id="pagelink">${page}</div>`, которую вы зачем-то в ненужную функцию завернули.
0
1 / 1 / 0
Регистрация: 04.03.2023
Сообщений: 129
02.08.2023, 09:54  [ТС]
klyapa, например цифра 3 это образное значение, которое передает одну пагинацию целиком. Я временно убрал обработку этой цифры в php, поэтому и получается что передается просто цифра. Если цифра 3 будет обрабатываться, то вместо неё передадутся целые блоки div для пагинации. Не стоит на этом заострять внимание. Я наверное зря добавил это в пример и тем самым ввел в заблуждение. Я получаю нумерацию блоков из html и передаю в js где теперь этот номер блока хранится в переменной. Теперь сама проблема: я пытаюсь эту переменную передать в var arr = [1]; или var arr = [2]; или var arr = [3]; чтобы цикл как-то понял в какой по счету ul передавать одну пагинацию(почему в цикле всего одно значение крутится? так надо).
Вот как я получаю переменную:
JavaScript
1
let tagsArray = $(this).closest('.hs-categ').find('input[name="news_cat"]').val();
три одинаковых и уже пронумерованных в .val 'input[name="news_cat"] распределены по блокам <ul class="pagcat">
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
02.08.2023, 15:06
Eclipse19, кто на ком стоял? можно реальную картину мира прямо вот здесь выложить? что мечталось, что сделалось, что в итоге?
0
1 / 1 / 0
Регистрация: 04.03.2023
Сообщений: 129
03.08.2023, 10:27  [ТС]
pincet, не понимаю о чем вы
0
1 / 1 / 0
Регистрация: 04.03.2023
Сообщений: 129
03.08.2023, 11:12  [ТС]
Есть некий цикл, в котором крутится три значения из output
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const { output } = JSON.parse(response);
$('.hs-categ').each(function (i) {
        var pagcat = $(this).find('.pagcat');
        output[i].forEach(function (page) //перебор и вывод
        {
            const pag = getItemPAG(page);
            pagcat.empty().append(pag); //очищаем старую и добавляем новую выборку
        });
});
 
function getItemPAG(page)
{
    const pagHTML = `
        <div id="pagelink">${page}</div>`;
 
    return pagHTML;
}
Затем эти три значения отравляются в ul
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<div class="hs-categ"><?= $cat[0] ?>
   <ul class="pagcat">
 
   </ul>
</div>
<div class="hs-categ"><?= $cat[1] ?>
   <ul class="pagcat">
 
   </ul>
</div>
<div class="hs-categ"><?= $cat[2] ?>
   <ul class="pagcat">
 
   </ul>
</div>
Проблема в том, что когда я хочу с помощью ajax прогнать по этому же циклу одно значение и отправить например в третий по счету блок, то это значение попадает в первый блок. Я пытался доработать цикл и с помощью переменной var arr = 3; (число будет меняться мной в зависимости от нумерации блока ul) дать понять циклу в какой блок вывести единственное значение output, которое там крутится.
JavaScript
1
2
3
4
5
6
7
8
9
$('.hs-categ').each(function (i) {
        var arr = 3;
        var pagcat = $(this).find('.pagcat');
        output[i].forEach(arr, function (page, e) //перебор и вывод
        {
            const pag = getItemPAG(page);
            pagcat.empty().eq(e).append(pag); //очищаем старую и добавляем новую выборку
        });
});
Как можно вывести единственное значение из цикла в блок так, чтобы значение попадало в ul, нумерацию которого я укажу в var arr = 3;?
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
03.08.2023, 12:27
Eclipse19,
я о том, что это реально похоже на `товарищи ученые, у меня в подвале раздаются странные звуки`
чего сразу не сделать нормально, а не фантазировать?
0
1 / 1 / 0
Регистрация: 04.03.2023
Сообщений: 129
03.08.2023, 12:59  [ТС]
pincet, бывает не так то и просто донести суть проблемы
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
03.08.2023, 14:47
Цитата Сообщение от Eclipse19 Посмотреть сообщение
бывает не так то и просто донести суть проблемы
именно по этому я и упомянул граждан ученых
что мешает на стороне сервера (уж если не в терпеж) пронумеровать каждый див используя dataset?
0
03.08.2023, 15:46

Не по теме:

Цитата Сообщение от Eclipse19 Посмотреть сообщение
бывает не так то и просто донести суть проблемы
Значит ты творишь какую-то необъяснимую дичь...

0
1 / 1 / 0
Регистрация: 04.03.2023
Сообщений: 129
04.08.2023, 10:39  [ТС]
klyapa, krvsa, pincet, ничего не дичь, просто сложный механизм вывода данных
В результате проб и ошибок получилось, что таким образом удается выводить нужную пагинацию в нужный блок:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
const { output } = JSON.parse(response); // в output выводится одно значение из трех
    var arr = [1];
    $.each(arr, function(a,e){
        $('.hs-categ').eq(e).each(function (i) {
            var pagcat = $(this).find('.pagcat');
            output[i].forEach(page =>
            {
                const pag = getItemPAG(page);
                pagcat.empty().append(pag);
            });
        });
    });
Однако, если я теперь хочу вывести из output все 3 пагинации в свои ul, то выводится только первая из них во все ul, которые я укажу в переменной var arr = [0,1,2]; Не понимаю почему так. Помогите пожалуйста решить эту проблему и тогда задача будет полностью решена
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
04.08.2023, 10:48
Цитата Сообщение от Eclipse19 Посмотреть сообщение
ничего не дичь, просто сложный механизм вывода данных
тебе уже не первый раз говорят - скажи, что реально хочешь сделать
ибо нет ТЗ - результат ХЗ
0
1 / 1 / 0
Регистрация: 04.03.2023
Сообщений: 129
04.08.2023, 10:52  [ТС]
Цитата Сообщение от pincet Посмотреть сообщение
именно по этому я и упомянул граждан ученых
что мешает на стороне сервера (уж если не в терпеж) пронумеровать каждый див используя dataset?
а смысл мне их указывать если я и так получаю их значения и уже передаю в переменную js, которая затем будет передавать значения сюда var arr = [0,1,2];
0
 Аватар для pincet
1654 / 1153 / 173
Регистрация: 23.07.2010
Сообщений: 6,910
04.08.2023, 10:54
и перестань баловаться с var
Цитата Сообщение от Eclipse19 Посмотреть сообщение
pagcat.empty()
JavaScript
1
pagcat.empty().append(pag);
не смущает?
0
1 / 1 / 0
Регистрация: 04.03.2023
Сообщений: 129
04.08.2023, 10:54  [ТС]
Цитата Сообщение от pincet Посмотреть сообщение
тебе уже не первый раз говорят - скажи, что реально хочешь сделать
ибо нет ТЗ - результат ХЗ
дак я уже 100 раз объяснил вдоль и поперек чего хочу. Я же не могу вам вложить это в голову
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.08.2023, 10:54
Помогаю со студенческими работами здесь

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

Не получается правильно вывести данные в блок <div> из javascript
Есть переменная. Мне нужно вывести каждое пятое слово с новой строки. В консоле выводится корректно а на странице всё в одну строку. ...

Как отправить письмо с текстом из div?
Здравствуйте. Есть такая форма и div HTML &lt;form method=&quot;POST&quot; id=&quot;feedback-form&quot;&gt; Как к Вам обращаться: &lt;input...

Как отправить готовое html-письмо в формате msg в Outlook 2013 сразу нескольким адресатам в виде рассылки
Есть готовое письмо в HTML-формате подготовленное в OUTLOOK 2013 и сохраненное в формате .msg. Есть 20 адресатов сохраненные в книге...

Как правильно расположить <div id="rectangle"></div> в коде
Здравствуйте, помогите пожалуйста правильно вставить в код &lt;div id=&quot;rectangle&quot;&gt;&lt;/div&gt; Код: &lt;!DOCTYPE html&gt; &lt;html...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru