Пример №2 — Мы сами создаем структуру на странице в момент обхода массив элементов.
const fruitsAndVegetables=[['Apple','Mango','Peach','Orange','Lemon'],['Beets','Peas','Carrots']]constfruitsToTable=(array)=>consttable=document.createElement('table');// Добавим видимые границы у таблицыtable.setAttribute('border','1');for(constrowofarray)consttr=table.insertRow();for(constitemofrow)consttd=tr.insertCell();td.textContent=item>>returntable;>document.body.append(fruitsToTable(fruitsAndVegetables));
В этой статье я покажу интересную возможность по работе с формами, которая в некоторых случаях может упростить и ускорить обработку форм. Это основано на работе с массивами в HTML-форме. А теперь более подробно об этом.
Вообще, массивы в HTML-форме используются часто, например, когда у нас есть несколько checkbox, отвечающих за одно и то же поле. Например, пользователю требуется выбрать те разделы сайта, которые ему наиболее интересны. Тогда выводится что-то наподобии этого:
После отправки формы в скрипт придёт массив sections со значениями, отмеченными пользователем. Такой приём использования массивов в HTML-форме очень часто можно встретить.
Но сейчас я Вам покажу ещё один вариант использования такой возможности, но уже более оригинальный и редко встречаемый. Создадим HTML-форму:
Обратите внимание, что мы для разных полей в форме указываем массив user с соответствующими ключами, которые уже характеризуют само поле. Теперь, чтобы получить уже готовый массив user для использования в PHP, достаточно написать в скрипте-обработчике так:
Проще и не бывает. Дальше уже можно использовать ассоциативный массив $user на своё усмотрение.
В этой статье я продемонстрировал, как можно работать с массивами в HTML-форме. Надеюсь, что это было полезно и интересно.
Создано 29.11.2013 12:54:10
Михаил Русаков
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov. Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте, то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Кнопка: Она выглядит вот так:
Текстовая ссылка: Она выглядит вот так: Как создать свой сайт
BB-код ссылки для форумов (например, можете поставить её в подписи):
Комментарии ( 3 ):
Хорошая статья, но как же со скоростью? Если делать вот так, как вы показали в статье, то не упадёт ли скорость?
Возможно, лучше писать к примеру name=»user[‘password’]», чтобы php при получении не подумал, что это зарезервированное слово или какая-то константа. Иногда бывает, и тогда уже очень трудно понять, в чём дело. Однако, возможно это проблема лишь некоторых версий php, это я точно не могу сказать. Если у вас работает без кавычек, то ок, делайте 🙂
Для добавления комментариев надо войти в систему. Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Для лучшего понимания, что такое массивы, сделаем вид, что их не существует, обойдемся пока без них. Однако для проведения эксперимента, надо иметь представление о понятии переменной, посмотрите этот урок, если вы не знаете что такое переменная.
Жизнь без массивов
Программист получил список, состоящий из пяти фамилий сотрудников компании, для дальнейшего вывода их на веб-сайте. Для этого, он создал пять переменных с разными названиями, присвоил им эти фамилии и вывел в консоль на JavaScript.
Согласитесь, что создавать отдельную переменную для каждого сотрудника, контрпродуктивно, а если их будет 50 человек? Намного удобнее все эти фамилии занести в один список (массив) и работать в дальнейшем не с каждой фамилией в отдельности (по типу переменной), а с одним массивом с однотипными данными (элементами массива).
Создать массив на JS
Теперь запишем то же самое, но с применением массивов. Объявим переменную worker и присвоим ей значения (элементы массива) в квадратных скобочках. Вот таким образом создаются массивы.
Мы получили одинаковый результат, только кода написали значительно меньше.
Как получить и вывести элемент массива на JS
Для получения конкретного элемента массива мы обращаемся к нему не по названию, а по порядковому номеру (индекс массива). К каждой фамилии автоматически прикрепляется индекс, в этой системе отсчет ведется с нуля, прибавляя по единице.Следовательно обращаться к элементу надо через индекс.
let worker = [‘Петров’, ‘Иванов’, ‘Васильев’, ‘Яковлева’, ‘Степанова’]; console.log(worker[0]); // Петров console.log(worker[1]); // Иванов console.log(worker[2]); // Васильев
В консоли выведутся фамилии, а не числовые индексы.
Как вывести весь массив JS
Для вывода в консоли необходимо указать одно его название.
Длина массива JS
В консоли, перед выведенными индексами массива, мы увидели число 5 – это длина массива length. Здесь очень важно понимать, что length не количество элементов массива, а последний индекс +1.
Что можно положить в массив?
В массив можно положить любые типы данных, причем вперемешку. Например, этот массив содержит: число, строку и булевое значение.
let all = [5, «Привет», false]; console.log(all[1]); // вывод в консоли строки Привет
Перезаписать элемент массива
Нам надо заменить 5 на 10, для этого обращаемся к имени массива и указываем в квадратных скобках индекс перезаписываемого элемента. В консоли вывелось число 10, вместо 5.
Вывести массив на странице
Выведем элементы массива в параграфе HTML-документа.
JavaScript код
Получаем параграф с идентификатором out_arr и присвоим ему через innerHTML имя массива worker.
let worker = [‘Петров’, ‘Иванов’, ‘Васильев’, ‘Яковлева’, ‘Степанова’]; let out_arr = document.getElementById(‘out_arr’); out_arr.innerHTML = worker;
Фамилии сотрудников выведутся без пробелов или запятых, совсем не презентабельно.
Вывод массива путем перебора элементов
Мы объявили пустую переменную str и запустили цикл for с условием: выводить элементы массива, начиная с 0-го индекса с шагом 1, до тех пор пока длина массива больше счетчика i.
let worker = [‘Петров’, ‘Иванов’, ‘Васильев’, ‘Яковлева’, ‘Степанова’]; let out_arr = document.getElementById(‘out_arr’); let str = ‘ ‘; for (let i = 0; i < worker.length; i++ ) if (worker[i]!==undefined) str +=i+' - '+worker[i]+' ‘; > out_arr.innerHTML = str;
Запускаем в цикле проверку, чтобы не выводились пустые элементы и прописываем формулу вывода с числами индекса, с дефисом и в столбик.
Заключение
На этом уроке мы научились создавать, изменять и красиво выводить массивы на страницу, а также получать элементы массива по отдельности и все сразу.
Создано 11.01.2019 10:40:01
Михаил Русаков
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov. Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте, то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Кнопка: Она выглядит вот так:
Текстовая ссылка: Она выглядит вот так: Как создать свой сайт
BB-код ссылки для форумов (например, можете поставить её в подписи):
Комментарии ( 4 ):
Добрый день. Вот эта конструкция не будет работать: «Создать массив на JS . let worker = [‘Петров’, ‘Иванов’, ‘Васильев’, ‘Яковлева’, ‘Степанова’]; console.log(worker_1); console.log(worker_2); console.log(worker_3); console.log(worker_4); console.log(worker_5);» Думаю, это описка, т.к. обращение к массиву такое worker[1].
все примеры рабочие и проверены в консоли, скрины же настоящие.
Я бы не написал, если бы не проверил. Чего и Вам желаю 🙂
спасибо добрый человек за внимательность, теперь исправлено.
Для добавления комментариев надо войти в систему. Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.