编程语言
首页 > 编程语言> > PHP-下拉菜单(选择菜单)问题

PHP-下拉菜单(选择菜单)问题

作者:互联网

我有这样的MySQL

区域表

id     |   region
-------------------
1      |   Region1
2      |   Region2

和学校表

region_id |   school
-------------------
1         |   schno1
1         |   schno5
1         |   schno6
2         |   scho120 

我的页面是这样的:首先,页面从名为“ regions”的数据库表中填充#regions select菜单.当用户选择#region时,js会将所选区域的值发送到search.php.服务器端php脚本在名为“ schools”的数据库表中搜索#region(先前选择的菜单)值,查找所有匹配项并回显它们.

现在的问题是,如果找不到匹配项,如何隐藏#class和#school选择菜单,并仅显示错误消息“在该区域没有找到学校”?如何检查search.php是否没有结果?我是JS的新手.如果可以的话,请编辑我的代码.提前谢谢.对不起,我的英语不好

我的JavaScript看起来像是http://pastie.org/2444922和表单http://pastie.org/2444929中的一段代码,最后是search.php http://pastie.org/2444933

更新
我更改了js,但没有成功!

$(document).ready(function(){
    $("#school").hide();
    $("#class").hide();
searchSchool = function(regionSelect){
var selectedRegion = $("select[name*='"+regionSelect.name+"'] option:selected").val();
if (selectedRegion!='0'){
    $.ajax({
    type: "POST",
    url : "core/code/includes/search.php",
    data: "&region_id="+selectedRegion,
    success: function(result, status, xResponse){
        if (result!=null){
            $("#school").show();
            $("#class").show();
            $("#school").html(result);
        }else{
            $("#error").html("There is no school found in this region");
            $("#school").html('');
            $("#school").hide();
        }
    },
    error: function(e){
        alert(e);
    }
    });
}else{
    $("#error").html('Please select a region first');
    $("#school").html('');        
    $("#school").hide();
    $("#class").hide();
}
}
});

解决方法:

你可以试试这个

index.php:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <title>Ajax With Jquery</title>

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" type="text/javascript" charset="utf-8"></script>
    <script type="text/javascript">
    searchSchool = function(regionSelect){
    var selectedRegion = $("select[name*='"+regionSelect.name+"'] option:selected").val();
    if (selectedRegion!='0'){
        $.ajax({
            type: "POST",
            url : "search.php",
            data: "&region_id="+selectedRegion,
            success: function(result, status, xResponse){
            alert(result);
            if (result!=''){
                    $("#school").show();
                    $("#school").html(result);
                }else{
                    $("#error").html("There is no school found in this region");
                    $("#school").html('');
                    $("#school").hide();
                }
            },
            error: function(e){
                alert(e);
            }
        });
    }else{
        $("#error").html('Please select a region first');
        $("#school").html('');        
        $("#school").hide();
    }
}
</script>
</head>


<body>

    <?php 
$username="root";
$password="";
$database="test";

mysql_connect('localhost',$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM regions";
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();

echo "<b><center>Database Output</center></b><br><br>";

?>
<select name="region" id="region" onchange="searchSchool(this)">
<option value="0">Please select a Region</option>
<?php 
while($data = mysql_fetch_array( $result )) 
{ 
?>
<option value="<?php echo $data['id']?>"><?php echo $data['name']?></option>
<?php 
}
?>
</select>

<select name="school" id="school"></select>

<span id="error"></span>

</body>
</html>

Search.php:

<?php 

$username="root";
$password="";
$database="test";

mysql_connect('localhost',$username,$password);
@mysql_select_db($database) or die( "Unable to select database");

if(isset($_POST['region_id'])) {
$query = "SELECT * FROM schools WHERE region_id='".$_POST['region_id']."'";
$result=mysql_query($query);

$num = mysql_numrows($result);

if ($num>0){
    while ($row = mysql_fetch_array($result)) {
        echo '<option value="'.$row['id'].'">'.$row['name'].'</option>';
    }
    }
else{
return null;
}
}


mysql_close();
?>

标签:drop-down-menu,html,mysql,php,jquery
来源: https://codeday.me/bug/20191208/2088144.html