С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/21: Рейтинг темы: голосов - 21, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 07.05.2016
Сообщений: 24

Вывод значений в таблицу из input-ов

09.01.2019, 17:31. Показов 4072. Ответов 4

Студворк — интернет-сервис помощи студентам
Здравствуйте. Мне нужно вывести данные из бд в таблицу html, которая состоит из input-ов (вывод в значение атрибута value). Я худо-бедно разобрался с простым выводом данных в таблицу (слепил из того что нашёл в интернете), а вот с input-ами не получается. В браузере пишет "Cannot read property 'setAttribute' of undefined". Вот часть кода, которая отвечает за отображение таблицы:

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
         var body = document.getElementsByTagName('body')[0];
    var tbl = document.createElement('table');   
    tbl.setAttribute('border', '1');
    //let th=document.createElement('thead');
    let inp=document.createElement('input')
    inp.setAttribute('value', clientObj.obj['product_name'])
    var tbdy = document.createElement('tbody');
    var thead=document.createElement('thead')
    thead.innerHTML='<tr><td>Наименование продукта</td><td>Сертификация(схема)/Декларация</td>'+
            '<td>Наименование заказчика</td><td>Договор (№ и дата)</td>'+
           '...'
               tbl.appendChild(thead)
 
    for (var i = 0; i < 1; i++) {
        var tr = document.createElement('tr');
        for (let key in clientObj.obj) {            
            var td = document.createElement('td');
            //var inp=document.createElement('input')
            var t = document.createTextNode(clientObj.obj[key]);
            //var t=document.setAttribute('value', clientObj.obj[key])
            //inp.appendChild(t)
            td.appendChild(t);
            //td.appendChild(inp)             
            tr.appendChild(td);            
        }
        
        tbdy.appendChild(tr);
    }
    
    tbl.appendChild(tbdy);
    body.appendChild(tbl)
    body.appendChild(inp)
   }
}
То есть строка 6 выводит, а в самом цикле не получается.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.01.2019, 17:31
Ответы с готовыми решениями:

Вывод значений из БД в input
Привет всем. Хочу понять почему из БД информация выводится в input не вся, а только последняя строка в БД, а если вывожу в ячейки...

Вывод значений в таблицу
Подскажите, что изменить в программе, чтобы значения x и F выводились в таблицу? #include &lt;iostream.h&gt; #include &lt;math.h&gt;...

Вывод значений в форму и таблицу
Суть такая.. есть некая база с некими таблицами т1 т2 т3 , по этим таблицам делается запрос на сортировку по дате (т.е по интервалу,...

4
98 / 64 / 36
Регистрация: 04.12.2018
Сообщений: 158
09.01.2019, 19:50
Лучший ответ Сообщение было отмечено sk1ngr0s как решение

Решение

Внутри цикла нужно let вместо var. Или var вынести из цикла, а внутри оставить присваивание. В любом случае, не надо var и let смешивать.

В строке 6 inp.setAttribute('value',, а в цикле почему-то document.setAttribute('value',...

В общем, должно работать:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
    for (let i = 0; i < 1; i++) {
        let tr = document.createElement('tr');
        for (let key in clientObj.obj) {
            let td = document.createElement('td');
 
            let inp = document.createElement('input');
            inp.setAttribute('value', clientObj.obj[key]);
 
            td.appendChild(inp);
            tr.appendChild(td);
        }
        tbdy.appendChild(tr);
    }
1
0 / 0 / 0
Регистрация: 07.05.2016
Сообщений: 24
10.01.2019, 10:03  [ТС]
Ой, спасибо! Как так то я не заметил?! Извините, но не подскажете ещё как сделать так, чтобы оно мне рисовало таблицу на другой странице? Просто я такой же спец в node.js, как и в html с js и не могу сделать одновременно вывод таблицы и получение данных с неё на одной странице)
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
10.01.2019, 10:44
Здравствуйте.
Одному мне показалось, что структура списка какая-то странная?
Вот список из более, чем единственной строки.
Здесь можно всё текстом забацать, а можно и элементы вставлять. Имхо, текстом слегка веселей.
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
<!doctype html>
<html>
<head>
    <meta charset="utf-8" />
    <style>
        table {
            border: 1px solid gray;
        }
 
        input {
            width: 100%
        }
    </style>
</head>
 
<body>
    <script>
        let clientObj = [
            {
                "product_name": "product1",
                "field2": "f2_1",
                "field3": "f3_1",
                "field4": "f4_1",
            },
            {
                "product_name": "product2",
                "field2": "f2_2",
                "field3": "f3_2",
                "field4": "f4_2",
            },
        ];
        let s = "<table><thead><tr><th>Наименование продукта</th><th>Сертификация(схема)/Декларация</th>" +
            "<th>Наименование заказчика</th><th>Договор (№ и дата)</th></tr></thead><tbody>";
        for (let i = 0; i < clientObj.length; ++i) {
            s += "<tr>";
            for (let key in clientObj[i]) {
                s += `<td><input value="${clientObj[i][key]}"></td>`;
            }
            s + "</tr>";
        }
        s += "</tbody><table>"
        document.body.insertAdjacentHTML("beforeend", s); // appendChild для текста
    </script>
</body>
</html>
1
0 / 0 / 0
Регистрация: 07.05.2016
Сообщений: 24
11.01.2019, 19:32  [ТС]
Извините, но вы не подскажете как сделать так, чтобы таблица рисовалась на новой странице? Мне просто нужно сохранить изменённую таблицу в базу данных, а я не знаю как 2 запроса к одной странице прикрутить.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.01.2019, 19:32
Помогаю со студенческими работами здесь

Вывод значений COUNT в таблицу
Есть БД с 2-мя таблицами: clients(id_cl, FIO) и books(id_book,id_cl, name). Нужно посчитать, какое количество книг принадлежит каждому...

Обработка формы и вывод значений в таблицу
Задание: Пользователь вводит число в форму на странице и нажимает кнопку «Ввод». После этого на страницу выводится таблица. В первом...

Вывод данных из массива в таблицу по n значений
Необходимо сделать вывод в таблицу по n значений. Т.е берем например 50 первых значений из массива. Делаем табличку в две колонки. ...

Вычисление и вывод значений функции в таблицу
Составить блок-схему алгоритма и программу с использованием цикла с предусловием или постусловием для вычисления и вывода на экран таблицы...

Динамический вывод реквизитов справочников в таблицу значений
Доброе утро. Я недавно начал изучать 1С 7.7 Нужно динамический выводить реквизиты справочников в таблицу значений. Я сделал выбор...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
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 - 2026, CyberForum.ru