PHP для l oop не добавляются все строки - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь создать функцию PHP, которая генерирует код для Bootstrap 4 раскрывающегося списка ввода формы. Данные считываются из файла JSON и с использованием for для l oop каждая строка добавляется к строковой переменной. Я использую '$ json_obj = json_decode (' file_name. json ', true)' для чтения данных.

Пример JSON input :::

[{
    "name": "Peter",
    "user_name": "ughcsa484"
},
{
    "name": "Sam",
    "user_name": "ss648"
},
{
    "name": "John",
    "user_name": "7eddc4c"
},
{
    "name": "Helen",
    "user_name": "thec7841"
}]

Код: ::

    $output = '<select class="custom-select" id="'.$element.'">';
    $output = $output . '<option selected value="999">Select...</option>';
    for($i=0;$i<sizeof($json_obj);$i++)
    {
        echo($i.' - '.$json_obj[$i]["name"]);
        $output = $output . '<option value="'.$i.'">'.$json_obj[$i]["name"].'</option>';
    }
    $output = $output . '</select>';

Строка, добавляемая внутри для l oop, работает только один раз. Но for l oop работает нормально, и функция 'echo' внутри for for l oop также печатает все строки.

Распечатка из функции 'echo' внутри для l oop :::

0 - Peter
1 - Sam
2 - John
3 - Helen

Параметр доступен в раскрывающемся списке :::

Select...
Peter

Примечание ::: Сгенерированный код HTML сохраняется как строковое значение в переменной PHP $ вывод. Поскольку это функция, строка возвращается обратно и распечатывается в главном файле с помощью 'echo'.

HTML сгенерированный код :::

<select class="custom-select" id="element">
    <option selected value="999">Select...</option>
    <option value="0">Peter</option>
</select>

Обязательно HTML код :::

<select class="custom-select" id="element">
    <option selected value="999">Select...</option>
    <option value="0">Peter</option>
    <option value="1">Sam</option>
    <option value="2">John</option>
    <option value="3">Helen</option>
</select>
...