用 PHP 通过变量的值数动态填充 Select


Fill a Select on the fly with the number of values pass through a variable with PHP

我有一个选择,我正在通过PHP打印

echo ' <select>'; 
echo '  <option value="guest">Num of People</option>';
echo '  <option value="1">1</option>';
echo '  <option value="2">2</option>';
echo '  <option value="3">3</option>';
echo ' </select>'; 

但是我想根据通过变量传递的数字来编写选项的数量:$numofPeople从我的数据库中提取的。

像这样:

echo ' <select>'; 
echo '  <option value="guest">Num of People</option>';
i=1;
While  i< $numofPeople
    echo '  <option value="i">i</option>'; 
    i = i=1;
Loop
echo ' </select>'; 

非常感谢

正如Sameer Jain所说,你走在正确的轨道上,所以我会给你一点帮助:

<html>
  <head>
  </head>
  <body>
<?php
echo ' <select>'; 
echo '  <option value="guest">Num of People</option>';
$i=1;
$numofPeople = 5;
While ( $i <= $numofPeople )
{   echo "  <option value='$i'>$i</option>"; 
    $i = $i+1;
}
echo ' </select>';
?>
  </body>
</html>

请记住将此代码保存在 .PHP 文件。

请注意while内部的echo,以及双引号在外部和单引号在value中。这很重要。

你需要做这样的事情:

<?php
$query = "SELECT COUNT(*) AS total FROM people";
$result = mysqli_query($mysqli, $query);
$rows = mysqli_fetch_assoc($result);
$totalPeople = $rows['total'];
if ($totalPeople > 0) {
    echo ' <select>';
    echo ' <option value="guest">Num of People</option>';
    for ($i = 0; $i <= $totalPeople; $i++) {
        echo '  <option value="$i">'.$i.'</option>';
    }
    echo ' </select>';
}
?>

试试这样的事情

echo ' <select>'; 
echo '  <option value="guest">Num of People</option>';
for($i=1;$i< $numofPeople;$i++){
    echo '  <option value="'.$i.'">'.$i.'</option>'; 
}
echo ' </select>';