显示具有自动增量的变量

时间:2012-02-13 10:58:30

标签: php forms variables auto-increment

我有一个表单,用于记录autoincrement中带有变量名的各个字段。 当我保存我的表单变量时看起来像

<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 个答案:

答案 0 :(得分:2)

两个脚本中都有一些错误。在这里他们是固定的。

<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 :(得分:1)

In PHP, single-quoted strings do not allow for variable interpolation

尝试:

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

答案 2 :(得分:1)

这是因为您使用单引号:

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

并且单引号内部变量插值不会发生。

改为使用:

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

答案 3 :(得分:0)

这应该有效,

<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>

你需要将变量放在双引号中,我认为创建一个名称变量并将递增的值连接到它的末尾会更容易

答案 4 :(得分:-1)

无法从你的问题中得到你想要的东西 可能只是

echo $txt.$i;