以变​​量名增加数字

时间:2013-08-27 17:45:37

标签: php html

背景

我有一个for循环,为html表单创建一个输入表:

for ($i = 1; $i <= $x; $i++) {
  echo '<select name="waldo_'.$i.'" id="waldo_'.$i.'">
      <option value="">...</option>
      <option value="foo">Foo</option>
      <option value="bar">Bar</option>
    </select>
    <label for="foo_'.$i.'">Foo '.$i.'</label>
    <input id="foo_'.$i.'" type="text" value="" name="foo_'.$i.'">
    <label for="bar_'.$i.'">Bar '.$i.'</label>
    <input id="bar_'.$i.'" type="text" value="" name="bar_'.$i.'">';
}

在提交时,这会填充数据库。

问题

每次提交都需要可编辑。当我返回表单(作为管理员)时,我需要查看特定用户存储在数据库中的所有内容。

for ($i = 1; $i <= $x; $i++) {
  echo '<select name="waldo_'.$i.'" id="waldo_'.$i.'">
      <option value="">...</option>
      <option value="foo"';
  if($row['waldo_'.$i] == "foo") echo " selected='selected'";
  echo '>Foo</option>
      <option value="bar"';
  if($row['waldo_'.$i] == "bar") echo " selected='selected'"; 
  echo '>Bar</option>
    </select>
    <label for="foo_'.$i.'">Foo '.$i.'</label>
    <input id="foo_'.$i.'" type="text" value="'./*...*/.'" name="foo_'.$i.'">
    <label for="bar_'.$i.'">Bar '.$i.'</label>
    <input id="bar_'.$i.'" type="text" value="'./*...*/.'" name="bar_'.$i.'">';
}

我的select正确“选择”正确的选项,但我似乎无法以类似的方式填充文本输入值。
不知何故,我需要echo $foo_1$foo_2$foo_3,...,$foo_x中的$foo_.$i内容。

我尝试过使用{{1}},但这似乎不起作用。

这个问题有一个简单的解决方案吗?或者有更好的方法来格式化所有内容吗?

1 个答案:

答案 0 :(得分:1)

如果我没有误解你的问题:

$_POST["foo_".$i]

应该显示提交的数据。

编辑:或许这就是你要找的东西?

for ($i = 1; $i <= $x; $i++) {
  echo '<select name="waldo_'.$i.'" id="waldo_'.$i.'">
      <option value="">...</option>
      <option value="foo"';
  if(isset($row['waldo_'.$i]) && $row['waldo_'.$i] == "foo") echo " selected='selected'";
  echo '>Foo</option>
      <option value="bar"';
  if(isset($row['waldo_'.$i]) && $row['waldo_'.$i] == "bar") echo " selected='selected'"; 
  echo '>Bar</option>
    </select>
    <label for="foo_'.$i.'">Foo '.$i.'</label>
    <input id="foo_'.$i.'" type="text" value="';
  if(isset($row['foo_'.$i]) && $row['foo_'.$i] != "") echo $row['foo_'.$i];
    echo '" name="foo_'.$i.'">
    <label for="bar_'.$i.'">Bar '.$i.'</label>
    <input id="bar_'.$i.'" type="text" value="';
  if(isset($row['bar_'.$i]) && $row['bar_'.$i] != "") echo $row['bar_'.$i];
    echo '" name="bar_'.$i.'">';
}