从php中相同文件的下拉列表中获取所选选项的值?

时间:2011-06-08 16:58:53

标签: php html html-select

我有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>

5 个答案:

答案 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上的选项。