簡體   English   中英

在 PHP 變量中填充下拉列表

[英]Populating drop down list in the PHP variable

    while ($row = mysqli_fetch_array($result)){
      $move = '
        <select type = text name="mover">
         <option>select something</option>
          '".while ($dbrow = mysqli_fetch_array($result)){
              echo "<option value='".$dbrow['deptname']."'>".$dbrow['deptname']."</option>";}."'
        </select>';

    echo '<tr><td>'.$row['name'].'</td><td>'.$move.'</td></tr>';}

我正在嘗試在表格內顯示下拉列表。 但是,每當我應用while(...)代碼時,它都會顯示錯誤。

HTML + '".PHP."' + HTML不應該是正確的方法嗎?

不要串聯。 結束你的字符串,開始你的第二個 while 循環。

while ($row = mysqli_fetch_array($result)){
  $move = '<select name="mover">
    <option>select something</option>';
    while ($dbrow = mysqli_fetch_array($result)){
      $move .= "<option value='".$dbrow['deptname']."'>".$dbrow['deptname']."</option>";
    }
    $move .= '</select>';
    echo '<tr><td>'.$row['name'].'</td><td>'.$move.'</td></tr>';
}

從您的<select>中刪除type=text

echo替換$move.=...以添加到$move變量中。

請注意,根據$row中的項目數量,這將使您的 HTML 具有多個具有相同name<select>

當您使用" php 已解決,因此您只需要轉義 html "

while ($row = mysqli_fetch_array($result)) { 
  echo "<tr><td>$row['name']</td><td><select name=\"mover\"><option value=\"\">select something</option>";
  while ($dbrow = mysqli_fetch_array($result))
      echo "<option value=\"$dbrow['deptname']\">$dbrow['deptname']</option>";
  echo "</select></td></tr>";
}

在進入構建表的主循環之前生成select菜單,然后重新生成記錄集,以便可以開始主循環

<?php
    $html='<select name="mover">
        <option selected disabled hidden>Please select something';
        
    while( $row = mysqli_fetch_array( $result ) ){
        $html.=sprintf('<option>%s',$row['deptname'] );
    }
    
    $html.='</select>';
    $result->data_seek(0);
?>

然后建表。

<table>
<?php
    while( $row = mysqli_fetch_array( $result ) ){
        printf('<tr><td>%1$s</td><td>%2$s</td></tr>',$row['deptname'],$html);
    }
?>
</table>

暫無
暫無

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

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