在开始之前,我知道mysql已被折旧,但我的主管希望我将它用于此项目。
目前在名为“users_db”的数据库中有两个表。两个表都包含一列。
标有“year_of_study”的表格包含“year_name”列。 该表填充如下:
年份名称为“小学”,“初级周期”,“高级周期”。
标有“school”的表格包含“name_school”列。 该表填充如下:
name_school是“Goldsmith Hall”,“Marian College”,“Ringsend”,“St.Andrew's”
当用户从第一次下拉菜单中选择“小学”时,我希望第二次下拉只填充“Goldsmith Hall”和“Marian College”。当用户选择“Junior Cycle”或“Senior Cycle”时,我希望第二次下拉只填充“Ringsend”和“St.Andrew's”。
我知道我可能需要一个AJAX onchange或javascript?但我的问题是我没有太多运气经历了教程
如果有人能帮助我,我将不胜感激
<br>
<?php
mysql_connect("localhost","root","");
mysql_select_db("users_db");
$query = "SELECT DISTINCT year_name FROM year";
$result = mysql_query($query);
?>
<label for="year_of_study">Year of study</label>
<select name="year_of_study" id="year_of_study">
<option value="null" selected>--Select One--</option>
<?php
while($row = mysql_fetch_array($result))
{
echo "<option value=\"".mysql_real_escape_string($row['year_of_study'])."\">".$row["year_of_study"]."</option>";
}
?>
</select>
<br>
<?php
mysql_connect("localhost","root","");
mysql_select_db("users_db");
$query = "SELECT DISTINCT name_school FROM school";
$result = mysql_query($query);
?>
<label for="student_availability">Availability</label>
<select name="student_availability" id="student_availability">
<option value="null" selected>--Select One--</option>
<?php
while($row = mysql_fetch_array($result))
{
echo "<option value=\"".mysql_real_escape_string($row['name_school'])."\">".$row["name_school"]."</option>";
}
?>
</select>
<br>
答案 0 :(得分:0)
您可能最好实现某种Web服务,然后在这种情况下执行一些JavaScript。绝对没有办法用PHP这样的服务器端语言动态地完成它 - 您必须使用JavaScript或Dart来执行客户端操作。看到你正在使用PHP,你可以使用Slim Framework为你提供一些RESTful API。
在你安装了Slim后:
$app = new \Slim\Slim();
$app->get('/school/:student_availability', function ($student_availability) {
// do your query here and echo the results in JSON format
});
$app->run();
然后在jQuery上关于&#34; student_availability&#34;你可以做的选择改变:
$.getJSON("<yoururl>/school/" + $('#student_availability').val, function(result) {
// you might want to clear it here to stop it becoming overpopulated
$.each(result, function() {
$('#student_availability').append($("<option/>").val(result.school_id).text(result.name_school));
});
});
不是一个完整的答案,但希望是正确的方向。我还强烈建议您查看某种JavaScript网络应用程序框架,如果您对客户端丰富的网络应用程序感兴趣,请阅读以下内容:
如果您感兴趣,那么请务必查看Node.js以制作RESTful API。
一切顺利。