Форма PHP/HTML: Хранение нескольких пользовательских данных в массиве

#php #html #arrays #forms #user-input

Вопрос:

Проблема в том, что если я позвоню $_POST['name'] , я получу последний пользовательский ввод. Все, что я хочу получить, это вот так:

    // 1st input name Billy and click I click submit
   // 2nd input name Pia and click I click submit
   // How I can get all user input
   // Sample output will be the name Billy and Pia
 
 <h4>My html code look like this<h4>
<form method="post">
    <label for="name">Enter your name:</label>
    <input type="text" id="name" name="name[]">
    <input type="submit" value="Submit">
</form>
 

Комментарии:

1. Если вы хотите создать повторяемое поле, повторяемые поля не могут быть одинаковыми id="name" в допустимом HTML-документе. Вы хотите, чтобы один пользователь сообщил, что у него несколько имен? Кнопка отправить запускает отправку формы, в которую она вложена. У вас есть несколько <form> s?

2. Мне просто нужно одно поле, как в примере, и я пытаюсь использовать имя=»имя []», оно вернет массив, но только индекс 0, если я изменю значение, оно все равно останется таким же, как проблема, которую я только что опубликовал

3. Текстовое поле может содержать только одну строку. Если вы хотите, чтобы пользователи вводили несколько значений, разделенных запятыми, вам не нужно использовать синтаксис массива для атрибута name. Но тогда вы доверяете пользователю правильно разграничивать значения. Обязательно очистите и подрежьте после взрыва.

4. Можете ли вы помочь мне, как это сделать? Я использую PHP, я не могу понять, как решить проблему, потому что это похоже на страницу с полями ввода, и после нажатия кнопки отправить она сохранится в таблице, и если я попытаюсь добавить новый элемент, он отобразит 2 элемента, но одинаковые значения

Ответ №1:

Как только вы отправите форму, страница перезагрузится. Таким образом, сохраненные переменные POST и GET уничтожаются.

Возможные решения проблемы:

  1. Несколько полей ввода. (Используйте JS для создания поля ввода с именем=»имя[]» каждый раз, когда вы нажимаете определенную кнопку). Прочитайте следующее объяснение W3schools, чтобы узнать, как создать новое поле ввода с помощью JS. Это решение является наиболее ожидаемым для решения вашей проблемы.
  2. Используйте файлы cookie ($_COOKIE[«имя»][индекс])
  3. Попробуйте отправить данные через AJAX.

Комментарии:

1. Как я могу использовать файлы cookie для хранения нескольких значений, принятых одним именем поля=»имя[]»?

2. Преобразуйте их в строку json, используя $_COOKIE[«имя»] = json_encode($arrray), и когда вы захотите его использовать, выполните следующее $arr = json_decode($_COOKIE[«имя»]). Используйте функции массива PHP, чтобы добавить что-то в массив и удалить его.