Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
4 / 4 / 1
Регистрация: 20.12.2015
Сообщений: 47
1

Создание строки в таблице

27.09.2016, 18:00. Показов 1576. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет всем. Помогите пожалуйста.
есть шапка таблицы из пяти колонок,
внизу есть кнопка "Добавить строку".
Как с помощью JavaScript сделать так, чтобы при нажатии на кнопку добавлялась строка в таблицу из пяти input и при обновлении страницы эта строка не удалялась? Киньте пожалуйста код.
HTML5
1
2
3
4
5
6
7
8
9
10
<center>
    <H1 id="text"><em>Таблица</em></H1>
    <table border>
        <tr>
            <th>Колонка 1</th><th width="350px">Колонка 2</th><th width="500px">Колонка 3</th><th width="200px">Колонка 4</th><th width="450px">Колонка 5</th>
        </tr>       
    </table>
    <br>
    <input type="button" value="Добавить строку" onclick="dob()" style="font-size:18px; ">
</center>
Я начинающий, так что не судите строго
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.09.2016, 18:00
Ответы с готовыми решениями:

Создание строки в таблице
Здравствуйте, как средствами jquery создать новую строку в таблице, с количеством ячеек, как в...

Создание новой строки в таблице
Имеется код для создания новой строки в таблице БД procedure TForm1.Button1Click(Sender: TObject);...

Word: Создание итоговой строки в таблице
Добрый день! Передо мной стоит задача заполнить таблицу данными в Word с результатом. задачу...

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

2
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
27.09.2016, 21:13 2
Цитата Сообщение от Aleksey19718 Посмотреть сообщение
Я начинающий, так что не судите строго
не сужу, но объясняю:
то, что вы видите в окне своего браузера -- это браузерное отображение цифровой копии файла, который находится где-то на сервере
обновление страницы -- это удаление из окна текущего отображения цифровой копии файла и загрузка в окно для отображения другой цифровой копии этого же файла
то, что вы сделали с текущим отображением цифровой копией этого же файла -- оно всё исчезнет после удаления из окна
исходный файл находится на сервере и этот серверный файл совершенно не волнует, что с его цифровой копией делает Вася Пупкин из Мухосранска
аналогия: если вы на экране своего телевизора фломастером пририсуете рожки кому-нить (например, Стасу Михайлову), эти рожки в реальности, увы, у него не появятся
0
the hardway first
Эксперт JS
2461 / 1836 / 906
Регистрация: 05.06.2015
Сообщений: 3,603
28.09.2016, 15:30 3
Лучший ответ Сообщение было отмечено Aleksey19718 как решение

Решение

Aleksey19718, Добавить-то строки не проблема, а эти данные (до 5 мб) можно хранить в localStorage. Тема интересная:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Dyniamic Table</title>
  </head>
  <body>
 
<h1 id="text"><em>Таблица</em></h1>
<table>
  <tr>
    <th>Колонка 1</th><th>Колонка 2</th><th>Колонка 3</th><th>Колонка 4</th><th>Колонка 5</th>
  </tr>
</table>
<input type="button" value="Добавить строку" >
<input type="reset" value="Очистить">
<script src="js/dynamic_table.js" charset="utf-8"></script>
 
  </body>
</html>
Кликните здесь для просмотра всего текста
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
var DynamicTables = {}
 
DynamicTables.Factory = function (columnsCount) {
 
  if (!Element.prototype.remove) {
    Element.prototype.remove = function remove() {
      if (this.parentNode) {
        this.parentNode.removeChild(this);
      }
    };
  }
 
  var createInputCell = function (row, col, value) {
    var newCell = document.createElement('td');
    var newInput = document.createElement('input');
    newInput.type = 'text';
    newInput.name = 'cell_' + row + '_' + col;
    newInput.value = value || '';
    newInput.placeholder = 'Введите значение';
    newCell.appendChild(newInput);
    return newCell;
  }
 
  var createRow = function (row, values) {
    var newRow = document.createElement('tr');
    newRow.id = 'tr-' + row;
    for (var column = 0; column < columnsCount; column++) {
      var cellValue = values && values[column] ;
      var newCell = createInputCell(row, column, cellValue);
      newRow.appendChild(newCell);
    }
    return newRow;
  }
 
  this.appendRowTo = function (table, row) {
    row = row || undefined;
    var table = document.querySelector(table).tBodies[0];
    var newRow = createRow(table.rows.length, row);
    table.appendChild(newRow);
    return newRow;
  }
 
  this.removeRowsFrom = function (table, rowsCount) {
    for(var i = 1; i <= rowsCount; i++) {
      document.querySelector('#tr-' + i).remove();
    }
  }
}
 
DynamicTables.Storage = function () {
  this.load = function () {
    return JSON.parse(localStorage.getItem('dt_rows'));
  }
 
  this.save = function (data) {
    localStorage.setItem('dt_rows', JSON.stringify(data));
  }
}
 
DynamicTables.App = function (table) {
  var self = this;
  var columnsCount = document.querySelector(table).rows[0].cells.length;
  var factory = new DynamicTables.Factory(columnsCount);
  var storage = new DynamicTables.Storage();
  var data = storage.load() || {rows: []};
 
  var renderRow = function (row) {
    var newRow = factory.appendRowTo(table, row);
    var inputs = newRow.querySelectorAll('input');
    for (var i = 0; i < columnsCount; i++) {
      inputs[i].addEventListener('change', function () { self.saveCell(this); });
    }
  }
 
  var renderRows = function () {
    data['rows'].forEach(function (row) {
      renderRow(row);
    });
  }
 
  this.appendRow = function (row) {
    row = row || [];
    data['rows'].push(row);
    storage.save(data);
    renderRow(row);
  }
 
  this.saveCell = function (input) {
    var cellPos = input.name.split('_');
    var row = cellPos[1];
    var col = cellPos[2];
    data['rows'][row - 1][col] = input.value;
    storage.save(data);
  }
 
  this.clearRows = function () {
    factory.removeRowsFrom(table, data['rows'].length);
    data = {rows: []};
    storage.save(data);
  }
 
  renderRows();
}
 
var init = function () {
  var app = new DynamicTables.App('table');
  var addBtn = document.querySelector('input[type="button"]');
  addBtn.addEventListener('click', function () { app.appendRow(); });
  var resetBtn = document.querySelector('input[type="reset"]');
  resetBtn.addEventListener('click', function () { app.clearRows(); });
}
 
document.addEventListener('DOMContentLoaded', init);
0
28.09.2016, 15:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2016, 15:30
Помогаю со студенческими работами здесь

Триггер на создание новой строки в другой таблице
Есть таблицы Product и Order. В таблице Product находятся столбцы: ProductID, MakerID, Model,...

Создание отчета для одной строки в таблице
Здравствуйте. такая проблема - мне необходимо создать отчет &quot;консультационное исследование...

Создание в таблице кнопки удаления записи из БД для каждой строки
&lt;?php include(&quot;../db.php&quot;); $res = mysqli_query($db,&quot;SELECT * FROM turnir&quot;); $turnir =...

Найти строки в таблице, которых нет в другой таблице
Здравствуйте! Помогите, пожалуйста, составить запрос. Думаю думаю, никак не могу сообразить....


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru