0

背景

我有一个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,但这似乎不起作用。

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

4

1 回答 1

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.'">';
}
于 2013-08-27T17:50:23.233 回答