Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何通过从数据库中获取值来创建可靠的下拉列表_Php_Jquery_Ajax_Mysqli_Drop Down Menu - Fatal编程技术网

Php 如何通过从数据库中获取值来创建可靠的下拉列表

Php 如何通过从数据库中获取值来创建可靠的下拉列表,php,jquery,ajax,mysqli,drop-down-menu,Php,Jquery,Ajax,Mysqli,Drop Down Menu,我想做一个下拉列表,这是可靠的另一个下拉列表。这两个下拉列表的值都是从数据库中检索的。我怎么做?请帮忙。 另外,如何将类别名称传递到数据库mysql查询页面(list.php) 我现在有这个列表,它列出了所有的子类别。但是我只想根据类别列出特定的子类别 <script> $(document).ready(function(){ $.getJSON("getlist.php", function(return_data){ retu

我想做一个下拉列表,这是可靠的另一个下拉列表。这两个下拉列表的值都是从数据库中检索的。我怎么做?请帮忙。 另外,如何将类别名称传递到数据库mysql查询页面(list.php)

我现在有这个列表,它列出了所有的子类别。但是我只想根据类别列出特定的子类别

<script>

    $(document).ready(function(){
        $.getJSON("getlist.php", function(return_data){

            return_data.forEach(function(e,i){
                $('#catn').append('<option value= "'+e.catname+'">'+e.catname+'</option>');
            });

        });
    });

    $(document).ready(function(){
        $.getJSON("list2.php",{'catname':catname},function(return_data){

            return_data.forEach(function(h,i){
                $('#scatn').append('<option value= "'+h.subcatname+'">'+h.subcatname+'</option>');
            });

        });
    });

$(文档).ready(函数(){
$.getJSON(“getlist.php”,函数(返回\u数据){
return_data.forEach(函数(e,i){
$('#catn')。附加(''+e.catname+'');
});
});
});
$(文档).ready(函数(){
$.getJSON(“list2.php”,{'catname':catname},函数(返回_数据){
return_data.forEach(函数(h,i){
$('#scatn')。追加(''+h.subcatname+'');
});
});
});
list.php

<?php   
 $catname=$_GET['catname'];
 $conn =mysqli_connect("localhost", "root", "", "project"); 

      $sql = "SELECT * FROM catd where catname='$catname'";  
      $result = mysqli_query($conn, $sql); 


$scat_arr = array();
 while( $row = mysqli_fetch_array($result) )
 {
    $catid = $row['cid'];
    $catname = $row['catname'];
    $scat_arr[] = array("cid" => $catid, "catname" => $catname);
}
echo json_encode($scat_arr);
 ?>  

您可以在JS中使用
.change
函数。当第一个下拉菜单正在更改时,它会触发ajax withPOST方法,将其发布到您的文件
list.php
(查询运行的地方)

jQuery(document).ready(function(){
$('#catname')。更改(函数(){
var catname=$(this.val();
$.ajax({
url:list.php,
方法:“张贴”,
数据:{
猫名:猫名
},
数据类型:“json”,
成功:功能(数据){
变量$el=$(“子类名称”);
$el.empty();
$el.append($(“”)
.attr(“值”、“”)
.attr(“隐藏的”、“隐藏的”)
.text(“选择子类别名称”);
$.each(数据、函数(索引、值){
$el.append(“”+value.catname+“”)
});
}); 
您必须回显
json\u encode
输出,以便ajax识别返回值。然后您可以通过使用append强制转换来追加值


希望这能有所帮助。

当我这样做时,它现在在类别下拉列表中什么也没有显示:(你能给我看一下你的html文件吗?记得
#catname
是猫名类别的id
注意:我提供的代码只是一个示例。它的标记的#catn th id..我在你的代码中更改了它..仍然没有得到:(我只是以你的代码为例...我根据我的想法更改了值好吧,这是逻辑.#catn不能是空的,对吗?为什么只添加另一个查询,但这次是用PHP,这样你就可以轻松地将值强制转换到你的
。然后只为子cat名称
添加js文件,这样当#catn更改其值时ack end将根据#catn获取值,并将其填入子类别
jQuery(document).ready(function() {    

     $('#catname').change(function(){
            var catname = $(this).val();

            $.ajax({
                url:list.php,
                method:"POST",
                data:{
                    catname:catname
                },
                dataType:"json",
                success:function(data){

                 var $el = $("#subcatname");
                 $el.empty();
                  $el.append($("<option></option>")
                        .attr("value", '')
                        .attr("hidden",'')
                        .text('Select Sub Cat Name'));

       $.each(data, function(index, value){
        $el.append('<option 
               value="'+value.catid+'">'+value.catname+'</option>')
                });



});