используйте переменную для доступа к $ _POST - PullRequest
0 голосов
/ 28 октября 2010

У меня есть форма с большим количеством текстовых полей.

<textarea cols="30" rows="6" id="q1"></textarea>
<textarea cols="30" rows="6" id="q2"></textarea>
<textarea cols="30" rows="6" id="q3"></textarea>
...
<textarea cols="30" rows="6" id="q54"></textarea>

Не спрашивайте, зачем нам 54 вопроса.

Я хочу распечатать их, но не хочу делать это вручную.

$i = 1;
while ($i <= $countTextareas) {
  $questID = "q" . $i;

  $question = $_POST[$questID];

  echo "Question " . $i . ": " . $question . "<br />";

  $i++;
}

Результат этого кода:

Question 1: <br />

Любая помощь или даже точка в общем направлении была бы великолепна.

Заранее спасибо.

Возможно, это не самое элегантное решение, но оно работает ...

$i = 1;
while ($i <= $countTextareas) {
    $question = $_POST['question'][$i];
    echo "Question " . $i . ": " . $question . "<br />";
    $i++;
}

Ответы [ 2 ]

2 голосов
/ 28 октября 2010

Как насчет старого доброго foreach?

foreach ($_POST as $key => $value) {
    echo 'Question '.$key.': '.$value.'<br />';
}
1 голос
/ 28 октября 2010

Поскольку вы используете PHP, вы должны использовать изящную особенность PHP, заключающуюся в превращении атрибута имени, например question[], в массив.

Так что, если у вас есть ...

<textarea name="question[]" rows="5" cols="5">
</textarea>

<textarea name="question[]" rows="5" cols="5">
</textarea>

Ваш $_POST будет ...

question[0] = 'whatever';
question[1] = 'something else';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...