繁体   English   中英

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

[英]Get the value of selected option from a dropdown list in the same file in php?

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

请记住 PHP(在服务器上运行)和客户端(Javascript 等运行的地方)之间的区别。

您想要的是以下两种方法之一:首先,您可以预先填充给定学院可用的所有分支,并在客户端上有一个脚本,该脚本在学院更改时执行,这将更改集合提出的分支。 请注意,这涉及提前获取所有学院的所有分支机构。

其次,您可以有一个脚本,当学院发生变化时,它会在服务器上查询支持的分支并更改呈现的分支。 这种方式需要更少的预先处理,通常称为 AJAX 解决方案。

请注意,这两种方式都涉及编写一些 Javascript 将在客户端上运行以响应大学变化。

需要注意的是,如果使用 AJAX 完成,用户体验会更好。 但是,您需要将表单设置为提交您的大学 select 框的更改。 然后,在您的 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']);
}

这些信息足以让你工作吗?

我会试着回答。

如果您愿意使用 JavaScript,请查看 jQuery,特别是,
http://api.jquery.com/change/
否则,要使用 PHP,据我所知,您必须提交表单并刷新页面。 这可能不是你想要的。 你可以使用 PHP/ajax/json,但如果你可以这样做,你也可以直接使用 JavaScript。
jQuery 应该很容易,甚至可能有一个专用插件。

对于这样的事情,您要么必须实现一个动态更新页面的 AJAX 解决方案,要么必须将“college”值发布回您的页面并且......(我坐在这里输入这个和三个刚刚发布了新答案...?)...根据大学重新查询您的数据库。

如果您的列表很大,我会使用 ajax。

如果没有,您可以在 Javascript 中预填充一个数组并更改onchange上的选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM