Показать переменную с автоинкрементом - PullRequest
0 голосов
/ 13 февраля 2012

У меня есть форма, которая записывает различные поля с именем переменной в автоинкременте.когда я сохраняю мои переменные формы выглядит как

<form>
<?php 
    $i = 1;
    foreach ($variables as $var ) {
        echo '<input type="text" name="txt$i" value="$var->name" />';
        $i ++;
    }
?>
</form>

И мой вопрос заключается в том, как отобразить значение поля ввода, я делаю это, но не работает

<?php 
    foreach ($variables as $var) {
        echo $var->txt$i;
        $i ++;
    }
?>

Ответы [ 5 ]

2 голосов
/ 13 февраля 2012

В обоих ваших скриптах есть пара ошибок. Здесь они исправлены.

<form>
<?php 
$i = 1;
foreach ($variables as $var ) {
    echo '<input type="text" name="txt' . $i . '" value="' . $var->name . '" />';
    $i++;
}
?>
</form> 
<?php 
$i = 1;
foreach ($variables as $var) {
    echo $var->{"txt" . $i};
    $i++;
}
?>
1 голос
/ 13 февраля 2012

Это происходит потому, что вы используете одинарные кавычки:

echo '<input type="text" name="txt$i" value="$var->name" />';

, а внутри одинарных кавычек интерполяция переменных не происходит.

Вместо этого используйте:

echo '<input type="text" name="txt'.$i.'" value="'.$var->name.'" />';
1 голос
/ 13 февраля 2012

В PHP строки в одинарных кавычках не допускают интерполяции переменных .

Попробуйте:

echo '<input type="text" name="txt' . $i . '" value="' . $var->name . '" />';
0 голосов
/ 13 февраля 2012

Это должно сработать,

<form>
<?php 
  $variables = array("red","yellow","blue","orange","green");
  $i = 1;

 foreach ($variables as $var ) {
     $name = "txt".$i;
     echo "<input type='text' name='".$name."' value='".$var."' />";
     $i++;
 } ?>
</form>

Вам нужно поместить переменные в двойные кавычки, я подумал, что будет проще создать переменную имени и объединить увеличенное значение до конца ее

0 голосов
/ 13 февраля 2012

Не могу получить то, что вы хотите от вашего вопроса.
Может быть просто

echo $txt.$i;

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