JavaScript — создать динамические текстовые поля, а затем записать в текстовый файл

Поэтому должен быть более простой способ создать это. У меня есть форма со следующим HTML:

      <p>Names</p>
<ul class="container1"  style="list-style-type:none;">
<li><input type="text" size="10"  name="Name" /></li>
</ul>
<input type="button" class="add_form_field" value="+">

Затем я добавил несколько JS для создания новых текстовых полей, если пользователю нужно добавить больше имен:
Взято из: http://www.sanwebcorner.com/2017/02/dynamically-generate-form-fields-using.html

   $(document).ready(function() {
var max_fields      = 10;
var wrapper         = $(".container1");
var add_button      = $(".add_form_field");

var x = 1;
$(add_button).click(function(e){
e.preventDefault();
if(x < max_fields){
x++;
$(wrapper).append('<div><input type="text" name="Name"/><a href="#" class="delete">Delete</a></div>'); //add input box
}
else
{
alert('You Reached the limits')
}
});

$(wrapper).on("click",".delete", function(e){
e.preventDefault(); $(this).parent('div').remove(); x--;
})
});
$(document).ready(function() {
var max_fields      = 10;
var wrapper         = $(".container1");
var add_button      = $(".add_form_field");

var x = 1;
$(add_button).click(function(e){
e.preventDefault();
if(x < max_fields){
x++;
$(wrapper).append('<div><input type="text" name="Name"/><a href="#" class="delete">Delete</a></div>'); //add input box
}
else
{
alert('You Reached the limits')
}
});

$(wrapper).on("click",".delete", function(e){
e.preventDefault(); $(this).parent('div').remove(); x--;
})
});function check() {
var temp = document.getElementsByClassName("formElem");
if (document.getElementById("ckbox").checked) {
for (var e = 0; e < temp.length; e++) { // For each element
var elt = temp[e];
elt.required = false;
}
} else {
for (var e = 0; e < temp.length; e++) { // For each element
var elt = temp[e];
elt.required = true;
}
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>Names</p>
<ul class="container1"  style="list-style-type:none;">
<li><input type="text" size="10"  name="Name" /></li>
</ul>

<input type="button" class="add_form_field" value="+">

1

Решение

Проблема в том, что каждый добавляемый вами ввод имеет имя «name», поэтому PHP может получить доступ только к последнему (который перезаписал остальные). Чтобы обойти это, вы можете добавить индекс к имени входа или создать их массив. Это может быть достигнуто так:

<input type="text" name="name[]"...>

Итак, теперь в PHP-скрипте вы можете перебрать этот массив, чтобы получить все входные данные, или внедрить все элементы в переменную:

<?php
$names = implode(", ", $_POST["name"]); // all the names, comma-separated
?>

Теперь вы можете использовать $ names внутри $ f_data, чтобы увидеть все введенные поля.

(Спасибо Фред-II за заголовки о цитатах)

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector