Переменная PHP Iterate для массива в цикле while - PullRequest
0 голосов
/ 02 июля 2019

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

Я хотел назначить переменную каждому фрагментуданные (т. е. input type = 'text' name = 'service $ c') и итерируйте значение $ c, чтобы каждый раз назначать новое значение (например, service1, service2 и т. д.), чтобы при получении данныхразмещенный на следующей странице, я мог бы получить его по этим именам переменных.

Я обнаружил, что если я помещаю что-то вроде "for ($ i = 1; $ i <20 $ i ++)" внутри цикла while, каждыйотдельный бит данных в моем массиве будет печататься 20 раз, и если я возьму его за пределы цикла while, цикл while $ c будет равняться «service1» каждый раз. </p>

Я нашел решение, но ямне интересно, если это что-то вроде хоккея ... это работает, но мне интересно, если бы я мог сделать это лучше.

//Create the form
echo "<form action='changeservices2.php' method='post'>";

//Print Out My Array
while ($result_ar = mysqli_fetch_assoc($result)) {

    //Shorten the variable
    $a=$result_ar['service'];

    //Start at 1
    $b=1;

    //Iterate
    $c = $b+$d;
    echo "<input type ='text'  name='service$c' value='$a' ><br>";

    //Since the first variable is null, I needed to help change it
    if (is_null($c)) {$c=1;}
    $d=$c;

}


echo "<input type ='submit'  value='submit' ><br>";
echo "</form>";

это работает, мне просто интересно, если я скучаю поболее элегантное / простое решение

1 Ответ

2 голосов
/ 02 июля 2019

Использовать имена в стиле массива:

<input type="text" name="service[]" value="$a">

Тогда $_POST['service'] будет массивом, который вы можете зациклить.

...