簡體   English   中英

變量名稱中的遞增編號

[英]Incrementing number in variable name

背景

我有一個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但這似乎不起作用。

有解決這個問題的簡單方法嗎? 還是有更好的方法格式化所有內容?

如果我不誤解您的問題:

$_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.'">';
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM