Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Передача запроса методом POST (https://javascript.ru/forum/misc/81036-peredacha-zaprosa-metodom-post.html)

withoutname 18.09.2020 18:38

Передача запроса методом POST
 
Всем привет! Разрабатываю сайт на django.
Есть следующая форма:
<form action="/external/" method="POST">
    <div id="profile"></div>
        <input type="button" value="добавить" onclick="addInput()">
        <input type="button" value="создать массив" onclick="func()">
        <input type="submit" value="Выполнить">
    </form>


Функция addInput().

let i = 0;
    function addInput() {
  if (i < 5) {
    i = i + 1;
    let profile = document.getElementById('profile');
    let div = document.createElement('div');
    div.innerHTML = '<label>Значение:</label> <input type="text" name="items" id="box' + (i + 1) + '">';
    profile.append(ip);
  }
        }


При нажатии на кнопку "добавить" появляется поле для ввода, по условию кол-во полей ограничено до 5. Для каждого поля id увеличивается на 1. name остается неизменным.

Функция func().

function func() {
  let box = document.getElementsByName('items');
  let items = [];
 for(n=0; n < box.length; n++){
        let content = box[n].value
        items.push(content)
    }
    console.log(items)
}


Создает массив из значений, которые ввел пользователь в поле text тега input.
Все работает прекрасно, НО! Как передать сформированный массив из значений методом POST? В файле views.py лежит функция

Код:

def external(request):
    items = request.POST.getlist('items')
    run([sys.executable, 'codetest.py', items])
    return render(request, 'main/test.html')

при нажатии на кнопку "выполнить" переменная items принимает только одно, последнее введенное значение пользователем, а нужно, чтобы принимала именно полученный массив, который далее должен быть принят в качестве аргумента в скрипте с последующей передачей запроса в БД.
Кто подскажет, как это реализовать на чистом js?


Часовой пояс GMT +3, время: 14:24.