微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用mysql和php制作级联下拉列表

我必须创建一个具有多个下拉菜单的表单,这些菜单可以相互修改.菜单/数据库表是:

类别,样式,类型和机制

我试图用我对Ajax的有限知识来做这件事,但似乎只能访问MySQL一次(在初始页面上)来填充Categories表,而无法通过查询下一组结果来更新Styles表.我收到一个声称数据库为空的错误.

我还尝试通过选项组填充下拉列表以使用循环查询处理类别和样式,但只有类别标题显示所有样式子值显示为空白.我的代码如下:

                $query1="SELECT categories.category_id, categories.Category_Name ";
                $query1.="FROM categories ";
                $query1.="ORDER BY categories.Category_Name ASC";
                $category_result=MysqL_query($query1, $connection);

                if(!$category_result){
                    die("Database query Failed: " . MysqL_error());
                }

                $options="";

                $con=0;

                while ($category_row=MysqL_fetch_array($category_result)) {
                    $category_name=$category_row["Category_Name"];
                    $CategoryID=$category_row["category_id"];

                    $options.="<OPTGROUP LABEL=\"$category_name\"> <br />";

                    $query2="SELECT categories.category_id, categories.Category_Name, ";
                    $query2.="styles.style_id, styles.Style_Name ";
                    $query2.="FROM categories, styles ";
                    $query2.="WHERE styles.Category_ID = $CategoryID ";
                    $style_result=MysqL_query($query2, $connection);

                    if(!$style_result){
                        die("Database query Failed: " . MysqL_error());
                    }

                    while ($style_row=MysqL_fetch_array($style_result)) {
                        $style_name=$row["Style_Name"];
                        $id=$row["style_id"];

                        $options.="<OPTION VALUE=\"$id\" <a href=\"#\" onClick=\"javascript:swapContent('$style_name');\" >".$style_name.'</OPTION>';
                    }
                    $options.='</OPTGROUP> <br />';
                }
            ?>

            <SELECT NAME="category_id">
                <OPTION VALUE=0></OPTION>
                <?PHP echo $options ?>choose
            </SELECT>

任何洞察我做错的事都将不胜感激!

解决方法:

选项必须是数组.

$options[]="<OPTGROUP LABEL=\"$category_name\"> <br />";
<SELECT NAME="category_id">
   <?PHP foreach ($options as $value) 
           echo $value?>
</SELECT>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐