mysql HTML更改时选择更新查询

bvhaajcl  于 2022-10-31  发布在  Mysql
关注(0)|答案(2)|浏览(133)

我有一个有两个选择下拉列表的表单。一个是国家,一个是大学。国家下拉列表是从MySQL数据库填充的,显示输入的所有国家。起初,我希望大学下拉列表填充系统中的所有大学,但最终用户希望系统是动态的,并随着它的进行而学习,所以此时下拉列表没有显示任何数据。

<select name="academicdropdown" onchange="countrysortlist()" style="width:178px">
<option value"">Sort By Country</option>
<option value"All" style="font-weight:bold; font-style:italic">All Countries</option>
<?php

while ($row=mysqli_fetch_array($countryresult2)) {

    $id = $row["country_id"];
    $country = $row["country"];
    echo "<option value='$id'>$country</option>\n";
}
?>
</select>

<select name="universitydropdown" onclick="unilist()" style="width:154px">
<option value"">University</option>
<?php

    if(isset($_SESSION['appformuniversity'])) {

    if($_SESSION['appformacademic'] == "universitylist") {

        $universityinput = $_SESSION['appformuniversitylist'];
                                                    while ($row=mysqli_fetch_array($universityresult)) {
                                                        $universityid = $row["university_id"];
                                                                $university = $row["university_name"];
                                                        if($universityid == $universityinput) {
                                                            echo "<option value='$universityid' selected='selected'>$university</option>\n";
                                                        }
        else {
                                                        echo "<option value='$universityid'>$university</option>\n";
                                                        }
    }
    }
else {
                                                while ($row=mysqli_fetch_array($universityresult)) {

        $universityid = $row["university_id"];
        $university = $row["university_name"];
        echo "<option value='$universityid'>$university</option>\n";
                                                    }
}
}
else {

   while ($row=mysqli_fetch_array($universityresult)) {

            $universityid = $row["university_id"];
    $university = $row["university_name"];
            echo "<option value='$universityid'>$university</option>\n";
   }
}
?>
</select></td></tr>

我想做的是,当用户在国家下拉列表中选择一个国家时,它将更新大学下拉列表中该国家内的大学。我知道你必须使用onchange事件,但我不知道如何编写脚本。如有任何帮助,我们将不胜感激。
我现在的大学问题是

$universitysql = "SELECT * FROM university ORDER BY university_name ASC" ;

提前感谢您的帮助。非常感谢。

cngwdvgl

cngwdvgl1#

您可以使用javascript执行以下操作:

<script type="text/javascript">
function countrysortlist()
{
   document.form_name.submit();
}
</script>

当您更改选择选项时,站点将更新提交表单

<form name='form_name' action='' method='get'>
<select name="academicdropdown" onchange="countrysortlist()" style="width:178px">
...
</select>
</form>

然后查询将只加载提交的国家id内的大学。

<?php
$country_id = $_GET['academicdropdown'];
$universitysql = "SELECT * FROM university where countryid = '$country_id' ORDER BY university_name ASC" ;
?>
4xrmg8kj

4xrmg8kj2#

你必须使用 AJAX 。如果你知道jQuery,这会更容易。只要包含jquery.js文件。然后在国家下拉列表的onchange函数中编写AJAX。在onchange方法中,只需传递国家的ID。然后在AJAX方法中,将ID发送到PHP页面。在该页面中,使用该国家ID从SQL查询生成整个选项列表。在两个表之间建立一个关系,即每一个大学行都应该包含国家ID。然后回显选项列表。在 AJAX 方法中,只需使用innerHTML动态更改大学列表。我给你举个例子

  1. onchange(国家/地区选择)
onchange="countrysortlist(this.value)"
  1. countrysortlist函数中 AJAX 方法
$.ajax({
   type: 'POST',
   url: 'yourpage.php',  // change name
   data: "countryid="+id,  // country id
   success: function(data) {  // returns date
       $('.result').html(data); // result should be the class name of university dropdown
   }
});

相关问题