Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
10 / 10 / 0
Регистрация: 12.04.2012
Сообщений: 333

Создание функции для таблицы

14.09.2014, 00:15. Показов 4639. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите создать универсальную функцию на javascript. Суть самой функции в том, что она имеет следующие параметры show(x_data, number, cell1 , cell2, string1, string2), где x_data - данные заполняемые из массива, number - номер таблицы (идентификатор), cell1 - начальная используемая ячейка (по вертикали), cell2 (последняя ячейка- необязательный параметр - если он не установлен - заполняются данные до конца), string1 - первый элемент строки в таблице, string2 - последний элемент строки в таблице (тоже необязательный параметр - если он не указан данные заполняются до конца). Как вы уже поняли, нужная таблица, где есть уже шапка. Пример, в шапке первый столбец - ФИО сотрудника, второй и другие столбцы - указание даты.

ФИО Дата1 Дата2 Дата3 Дата4
имя деятельность деятельность ... ...
имя .... .... ... ...
имя ....
имя

Вот такая структура таблицы. Помогите написать javascript код для данной функции. Готовые библиотеки не нужны.
Причем все данные берутся из массивов.

JavaScript
1
2
function show(x_data, number, cell1 , cell2, string1, string2){
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.09.2014, 00:15
Ответы с готовыми решениями:

Создание таблицы для учета товара
Нужно выбрать цену товара и кол-во товара что бы он занесся в таблицу я хз как но у меня он только считает сверху Код: ...

Создание таблицы значений функции.
Хотелось бы узнать. Как и возможно ли в mathcad 14 сделать таблицу, например чтобы в верхней строке были некоторые значения переменной, а...

Создание таблицы значений функции в зависимости от соответствующего аргумента
Добрый день. Нужна помощь. К существующим задачам необходимо составить таблицы значений функции в зависимости от соответствующего...

11
Модератор
 Аватар для Thisman
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
14.09.2014, 02:54
Савва, погоди. Я правильно понял, что тебе нужна функция, которая автоматически заполняет нужно количество строчек в таблице, беря данные из массива?
0
10 / 10 / 0
Регистрация: 12.04.2012
Сообщений: 333
14.09.2014, 11:06  [ТС]
Thisman, да. Правильно. Но с теми параметрами, которые указаны.
0
Модератор
 Аватар для Thisman
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
14.09.2014, 17:53
Савва, не совсем понятно, как будут передаваться данные, точнее их вид. Вот у вас есть параметры cell1/cell2, которые отвечают грубо говоря за строки. То есть первый параметры отвечает, за строку, с которой начинается запись, второй ( необязательный ) за последнюю строку, где будет запись. Тут все более менее понятно. Но вот string1/string2, у вас же в таблице будут шаблонные данные, то есть каждая строка - это набор каких то одинаковых данных с разным значением. То бишь в каждой строке будет ячейка ФИО/ВОЗРАСТ/{еще какие-то данные}, каким образом тогда будут выглядеть передаваемые данные, если вместо переменных string можно просто указывать в последней строке пустые ячейки, если она будет заполнять на до конца. До пустим мы имеем некий конструктор, который будет создавать данные для таблицы. Один объект, одна строка

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function Row (param) {
   this.data1 = param.data1 || "";
   this.data2 = param.data2 || "";
   this.data3 = param.data3 || "";
}
 
// Теперь можно создать строку
var row1 = new Row({
    data1: "data1",
    data2: "data2",
    //data3 останется пустой
})
/*Так можно создать массив строк, которые потом будем перебирать.
   И если нужно что бы строка закончилась пустыми ячейками, то просто для этой строки не указываем 
   параметры пустых ячеек
*/

Такая конструкция подходит?
1
10 / 10 / 0
Регистрация: 12.04.2012
Сообщений: 333
14.09.2014, 19:20  [ТС]
Thisman, суть в том, что первый столбец - ФИО работников, а последующие столбцы - баллы за их деятельность. Под табличкой должны располагаться текстовые поля, куда надо заносить данные (количество строк, и столбцов). Если эти данные не указаны - заполняем элементами таблицу полностью. И еще вопрос: как создать массив, содержащий имена сотрудников и их баллы. Чтобы это потом перебирать и распределять по таблице.

Типа:

JavaScript
1
var massiv = [[Светлова, Ермакова],[1,4],[3,4]]
И перебрать for, чтобы получилась такая табличка?

Светлова 1 3
Ермакова 4 4
0
Модератор
 Аватар для Thisman
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
14.09.2014, 19:30
Савва,
Цитата Сообщение от Савва Посмотреть сообщение
И перебрать for, чтобы получилась такая табличка?
Я просто говорю, что самая конструкция

JavaScript
1
[[Светлова, Ермакова],[1,4],[3,4]]
Довольно не удобная. Почему бы не сделать так вот:

JavaScript
1
2
3
4
5
6
7
8
9
var massiv = [{name : "Светлова", points : [1,4]}, {name : "Ермаков", points : [3,4]}]
// работать с такой конструкцией мне кажется легче, чем писать massiv[0][1][1]
 
// Перебирать можно так:
for(var i = 0; i < massiv.length; i++ ) {
   //допустим table = ссылка на таблицу 
   var cells = massiv[i];
   table.innerHTML += "<tr><td>"+ cells.name +"</td><td>"+ cells.points[0]+"</td><td>"+ cells.points[1] +"</td></tr>";
}
1
10 / 10 / 0
Регистрация: 12.04.2012
Сообщений: 333
14.09.2014, 19:49  [ТС]
Thisman, что то у меня вообще пустую страницу выдает. ХЗ.

Насчет этой строчки немного не то. Длительность строки должна задавать не вручную, а в зависимости, сколько баллов было выставлено (то есть длиной массива). А в input полях чтобы можно было регулировать численность колонок как вниз так и вправо. То есть если массив заполнит 30 строк и 5 столбцов, то если указать 20 строк и 3 столбца - столько в таблицы и должно быть выведено.

JavaScript
1
table.innerHTML += "<tr><td>"+ cells.name +"</td><td>"+ cells.points[0]+"</td><td>"+ cells.points[1] +"</td></tr>";

Пустая стр почему-то. Вот листинг:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<table id="tableExample"> 
 <thead> 
 </thead> 
 
 <tbody id="one"> 
 
 </tbody> 
 </table>
 
<script>
 
var massiv = [{name : "Светлова", points : [1,4]}, {name : "Ермакова", points : [3,4]}]
 
for(var i = 0; i < massiv.length; i++ ) 
   var cells = massiv[i];
   one.innerHTML += "<tr><td>"+ cells.name +"</td><td>"+ cells.points[0]+"</td><td>"+ cells.points[1] +"</td></tr>";
}
 
</script>
0
Модератор
 Аватар для Thisman
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
14.09.2014, 20:04
Цитата Сообщение от Савва Посмотреть сообщение
то то у меня вообще пустую страницу выдает. ХЗ.
Потому что код условный

Ладно, щас напишу. Если правильно тебя понял, про ограничения таблицы

Добавлено через 11 минут
Савва, еще вопрос. Таблица уже будет создана? Или нам ее создавать динамически?
1
10 / 10 / 0
Регистрация: 12.04.2012
Сообщений: 333
14.09.2014, 20:17  [ТС]
Thisman, динамически создавать.
0
Модератор
 Аватар для Thisman
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
14.09.2014, 21:04
Савва, опять же не стыковка, если мы создаем динамически таблицу, то отпадает смысл в начальной ячейке, куда записываются данные. Она всегда будет нулевой, начальной, а если нет, то что записывать в строки до начальной? Мы ведь создаем динамически таблицу
1
10 / 10 / 0
Регистрация: 12.04.2012
Сообщений: 333
14.09.2014, 21:24  [ТС]
Thisman, ну да. Это не мною придумано))) Как правильно будет код составить? Я тоже согласен с тем, что начальные ячейки не имеет смысла устанавливать.
0
Модератор
 Аватар для Thisman
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
14.09.2014, 23:21
Савва, http://jsbin.com/hosawicojati/2/

Выложу сюда только код JS

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
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
var inputs = document.getElementsByTagName("input");
 
Array.prototype.forEach.call(inputs,function (el) {
    el.onchange = function () {
        var size = [inputs[0].value,inputs[1].value];
        table.create(document.getElementById("tableContainer"),size);
        table.fill(data);
    };
})
 
/* ------------------------------- */
 
var table;
 
// Инициация таблицы
function Table () {
    this.table = document.createElement("table");
};
 
// Создание таблицы
Table.prototype.create = function (parent,size) {
    this.table.innerHTML = "";
    parent.innerHTML = "";
    //Создаем столбцы
    for(var i = 0; i < size[0]; i++) {
        var row = document.createElement("tr");
        this.table.appendChild(row);
        //Создаем строки
        for(var j = 0; j < size[1]; j++) {
            var td = document.createElement("td");
            row.appendChild(td);
        }
    }
    parent.appendChild(this.table)
}
 
// Функция заполняющая таблицу данными
Table.prototype.fill = function (data) {
    if(!data) return;
    var rows = document.getElementsByTagName("tr"); // все строки
    for(var i = 0 ; i < data.length; i++) {
        var _data = data[i]; // данные для текущей строки
        var row = rows[i]; // текущая строка
        var cells = row.getElementsByTagName("td") // ячейки в текуще строке
        for(var j = 0; j < _data.length; j++) {
            if(cells[j]) cells[j].innerHTML = _data[j];
        }
    }
};
 
var table = new Table();
 
var data = [
  ["Имя1",1,2,3,4,5,6,7],
  ["Имя2",1,2,3,4,5,6,7],
  ["Имя3",1,2,3,4,5,6,7],
  ["Имя4",1,2,3,4,5,6,7],
  ["Имя5",1,2,3,4,5,6,7]
]
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.09.2014, 23:21
Помогаю со студенческими работами здесь

Слишком длинный текст для изменения в поле для запроса на создание таблицы
Приветствую Уважаемых пользователей эхотага! Помогите пожалуйста разрешить следующею проблемную ситуацию. Есть запрос на создание...

Создание таблицы для расписания
Добрый день уважаемые форумчане. Необходимо создать таблицу для составления расписания предметов. Все вроде бы просто. По оси x...

Создание таблицы для судоку
Всем доброго времени суток.Пишу курсовую на тему &quot;Судоку&quot;,надо в двумерный массив случайным образом заносить числа от 1 до 9.Вот часть...

Создание формы для редактирования таблицы
Есть задача на создание формы для редактирования шедуллера БД. Таблицу на SQL и процедуры изменения, добавления удаления я сделал...

Создание макроса для сводной таблицы
Господа доброго времени суток! Маловато опыта в этом деле. Есть вот такое задание. НА основании данного файла получать таблицу-отчет,...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru