我有2个下拉列表,一个是大学,另一个是分支,所以我想做的是,每当用户从第一个下拉列表中选择一个大学时,脚本应该自动检查可用的分支大学,应该将它们添加到第二个下拉列表,即分支,目前我手动完成。
<?php
mysql_connect("localhost", "root", "") or die("Connection Failed");
mysql_select_db("pet")or die("Connection Failed");
$query = "SELECT distinct insti_name FROM maininfo";
$result = mysql_query($query);
$query2 = "SELECT distinct insti_name FROM maininfo";
$result2 = mysql_query($query2);
?>
<form name="myform" id="one" method="post" action="compare.php">
Select first college:
<select name="coll1">
<?php
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
?>
<option value="<?php echo $line['insti_name'];?>"> <?php echo $line['insti_name'];?>
</option>
<?php
}
?>
</select>
<br /><p>Select the branch:
<select name="brn1">
<option value="0" selected>(please select:)</option>
<option value="ce">Civil</option>
<option value="cse">Computer Science Engineering</option>
<option value="ec">Electronics and Communication</option>
<option value="it">Information Technology</option>
<option value="aeie">AEIE</option>
<option value="mech">Mechanical</option>
<option value="elect elex">Elect Elex</option>
<option value="ee">Electricals</option>
<option value="el">EL</option>
<option value="chem">Chemical</option>
<option value="fire">Fire</option>
<option value="ei">ei</option>
<option value="food">Food</option>
<option value="ip">Information Practises</option>
<option value="bt">Bio Technology</option>
</select>
<br>
<hr width=100% height=4>
Select second college:
<select name="coll2">
<?php
while ($line = mysql_fetch_array($result2, MYSQL_ASSOC)) {
?>
<option value="<?php echo $line['insti_name'];?>"> <?php echo $line['insti_name'];?>
</option>
<?php
}
?>
</select>
<br /><p>Select the branch:
<select name="brn2">
<option value="0" selected>(please select:)</option>
<option value="ce">Civil</option>
<option value="cse">Computer Science Engineering</option>
<option value="ec">Electronics and Communication</option>
<option value="it">Information Technology</option>
<option value="aeie">AEIE</option>
<option value="mech">Mechanical</option>
<option value="elect elex">Elect Elex</option>
<option value="ee">Electricals</option>
<option value="el">EL</option>
<option value="chem">Chemical</option>
<option value="fire">Fire</option>
<option value="ei">ei</option>
<option value="food">Food</option>
<option value="ip">Information Practises</option>
<option value="bt">Bio Technology</option>
</select>
<br><br>
<input type="submit" name="Submit" value="Compare Colleges" >
</form>
答案 0 :(得分:1)
记住PHP(在服务器上运行)和客户端(运行Javascript之类的东西)之间的区别。
你想要的是两种方法之一:首先,你可以预先填充给定大学可用的所有分支,并且在客户端上,有一个在大学改变时执行的脚本,这将是改变提出的分支集。请注意,这涉及提前获得所有大学的所有分支。
其次,您可以使用一个脚本,当学院更改时,会向服务器查询支持的分支并更改显示的分支。这种方式预先需要更少的处理,通常被称为AJAX解决方案。
请注意,这两种方式都涉及编写一些将在客户端上运行的Javascript,以响应大学的变化。
答案 1 :(得分:0)
请注意,如果使用AJAX,这是一种更好的用户体验。但是,您需要将表单设置为提交更改大学选择框。然后,在PHP中,您需要执行以下操作:
if( isset( $_POST['coll1'] ) ) {
//query your branches and populate select same as you did for colleges.
//e.g. "SELECT * FROM Branches WHERE CollegeId=".mysql_real_escape_string($_POST['coll1']);
}
这有足够的信息让你工作吗?
答案 2 :(得分:0)
我会尽力回答。
如果您愿意使用JavaScript,请查看jQuery,
特别是,
http://api.jquery.com/change/
否则用PHP做,据我所知,你必须提交一个表格并刷新页面。
这可能不是你想要的。你可以使用PHP / ajax / json,
但如果你能做到这一点,你也可以直接使用JavaScript
jQuery应该让它变得简单,甚至可能还有一个专门的插件。
答案 3 :(得分:0)
对于这样的事情,你要么必须实现一个动态更新页面的AJAX解决方案,要么你必须将“大学”值发回到你的页面......(我坐在这里打字这个和三个新的答案刚刚发布......?)...根据大学重新查询你的数据库。
答案 4 :(得分:0)
如果你的名单很大,我会使用ajax。
如果没有,您可以在Javascript中预填充数组并更改onchange
上的选项。