0

好的,我尝试了几天,但我做不到,所以我首先尝试一步一步来我需要正确地从数据库中获取信息并以表格形式显示这里是数据库

CategoryID  |  CategoryName  |    ParentID

----------------------------------------
1           | FirstMenuCat1  |      0
2           | FirstMenuCat2  |      0
3           | SubMenuCat1    |      1
4           | SubMenuCat2    |      1
5           | SubMenuCat3    |      2

这是我最后一次成功的尝试,所以我知道我从数据库中获取了正确的数据,但我不知道如何使它成为一个表单:

<?php
require_once ('mysqli_connect.php');
$q = "SELECT CategoryName FROM menus where ParentID = '0' ORDER by CategoryID";
$r = @mysqli_query ($dbc, $q) or die("Error: ".mysqli_error($dbc));

/* associative array */
while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)){
printf ("%s\n", $row["CategoryName"]);



}
 ?>

这是我的尝试,但它不起作用

/* associative array */
while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)){

foreach($row){
                echo "<option value=\"". urlencode( $_ ) ."\" $selected >$_</option>\n";
                $selected = ""; // only the first element will be marked as selected
}

}
 ?>

有任何想法吗?

4

4 回答 4

0

通过查看选项标签,我认为您正在尝试创建一个组合框列表。如果是那么首先不要使用\n。组合框列表中的选项已逐行显示。

其次,您还没有打印选择标签。没有它,列表将无法正确呈现。试试下面的代码:

echo "<select name='mylist'>";

$selected = "selected";
while (($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) !== FALSE){
   echo "<option value='". $row['key']."' $selected >".$row['value']."</option>";
   $selected = ""; // only the first element will be marked as selected
}

echo "</select>";

希望它可能会有所帮助。

于 2013-04-11T10:59:42.543 回答
0

检查这个

echo '<select name="" id="">';
/* associative array */
while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)){

// Check the $_ correctly
foreach($row){
        echo "<option value='". urlencode( $_ ) ."'>$_</option>\n";
}

}

echo '</select>';

注意*:默认情况下,将为 dd 选择第一个元素。

于 2013-04-11T10:53:17.313 回答
0

不确定,但我认为这是你需要的

$optionString = '';
while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC))
{

   $value         = urlencode($row['CategoryName']);
   $optionString .= "<option value='{$value}'>{$row['CategoryName']}</option>";


 }

 echo "<select>$optionString</select>";
于 2013-04-11T10:54:36.370 回答
0
$selected = 'selected';

$htmlSelect = '<select name="elementName" id="elementId">';

while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)){
    $htmlSelect .= '<option value="' . urlencode( $_ ) . '" ' . $selected . ' >' . $_ . '</option>';
    $selected = ""; // only the first element will be marked as selected
}

$htmlSelect .= '</select>';

echo $htmlSelect;

注意 1:在元素属性上最好使用双引号"而不是单引号。'有些浏览器不喜欢单引号。

注意 2:无法理解您为什么在声明中foreach再次使用。while

注意 3:如果您不记得选择了哪个选项,则无需指定选择了哪个元素,默认情况下将选择第一个。

于 2013-04-11T11:05:12.193 回答