как поместить извлеченные данные в соответствующие поля ввода (поля ввода создаются динамически) - PullRequest
1 голос
/ 06 марта 2019

Предоставление некоторой предыстории:

Я работаю над кнопкой редактирования для моей системы управления контентом, но сейчас сталкиваюсь с парой проблем.Я заканчиваю кому-то еще его роль (он построил CMS, и я был назначен для его проекта, и мне пришлось закончить то, что он начал в основном), поэтому есть определенные части, которые я не могу редактировать или изменять.* Проблема:

Вы можете динамически создавать поля ввода в CMS, а затем вставлять данные в Mysqli.Прямо сейчас я извлекаю данные успешно, но сталкиваюсь со следующей проблемой: поля ввода были созданы следующим образом:

<input type="text" name="example[]" id="example[]"> //note the square brackets

, и я не могу назначить увеличенный счетчик для этих идентификаторов, поэтому я могу назначить свои извлеченныеданные в поля ввода.Я пытаюсь перебрать все мои наборы данных и затем вставить первые данные, которые он выбирает, в первое поле ввода, а вторые данные - во второе поле ввода и т. Д.

Мне удалось динамически создатьтакое же количество полей ввода, но основная проблема заключается в добавлении всех данных в отдельное поле ввода.Я продолжаю получать последние извлеченные данные во всех моих полях ввода.

Что я пробовал и как я пытался вставить data1 в поле ввода 1 и так далее:

Я знаю, что это отстой, и я знаю, что это не работает и почему это не работает, но я добавлю это, чтобы вы поняли.

for (var i = 0; i < response.length; i++) {
    console.log(i);
        $("#example\\[" + "\\]").each(function() { //already tried incrementing this part by using i as a counter, but it doesn't recognize the id when I use i as a counter.
            $("#example\\[" + "\\]").val(response[i].exampleType);
        });
}

Чего я пытаюсь достичь:

  • Я пытаюсь перебрать строки моей базы данных (успех)
  • Получить его через JSON(успех)
  • Динамически создавать поля ввода на основе количества извлеченных данных (успех)
  • Вставить data1 из базы данных в первое поле ввода и data2 во второе поле ввода и т. д. (вот где все идет не так, я не могу или не знаю, как увеличить поле ввода квадратными скобками, чтобы вставить мои извлеченные данные в поля ввода).

Пример:

Вы получили ваши данные в формате JSON через ajax, ваш параметр ответа loНапример,

response = JSON.parse(response);

В вашей базе данных есть 2 строки: row1 (из JSON.parse [0]) и row1 (из JSON.parse [1])

У вас естьсоздал 2 поля ввода динамически (поскольку у вас есть response [0] .example и response [1] .example), но оба поля ввода выглядят так:

<input type="text" name="example[]" id="example[]">

Так что это означает, что вы создали динамическиследующее:

<input type="text" name="example[]" id="example[]">
<input type="text" name="example[]" id="example[]">

Теперь вам нужно вставить строку 1 (из ответа [0] .example) в первое поле ввода, а другую строку 1 (из ответа [1] .example) - во второе.

Как этого добиться?

Заранее благодарю за потраченное время и усилия

1 Ответ

0 голосов
/ 06 марта 2019
your_json_array.forEach( function(obj) { //loop over your json array

    var input = document.createElement("input"); //create an input

    input.setAttribute("name", "yourname"); //custom it
    input.setAttribute("value", obj.value); //custom it
    //etc...

    your_div.appendChild(input); //appends it where you want
});

Obj - это элемент вашего ответа и значение одного из его свойств

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...