【问题标题】:Get the value of selected option from a dropdown list in the same file in php?从php中同一文件的下拉列表中获取所选选项的值?
【发布时间】:2011-06-08 16:58:53
【问题描述】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

      请注意,如果使用 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']);
      }
      

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

      【讨论】:

      • 因为我没有在其他文件中使用变量,这仍然有效吗??
      • 如果表单被提交并回发给自己,那么这将起作用。如果您的表单提交到不同的页面,那么您就会遇到问题。
      【解决方案3】:

      我会尽量回答。

      如果你愿意使用 JavaScript,那么看看 jQuery, 特别是,
      http://api.jquery.com/change/
      否则,要使用 PHP,据我所知,您必须提交表单并刷新页面。 这可能不是你想要的。你可以使用 PHP/ajax/json, 但如果你能做到这一点,你也可以直接使用 JavaScript。
      jQuery 应该让它变得简单,甚至可能还有一个专门的插件。

      【讨论】:

        【解决方案4】:

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

        【讨论】:

        • @Vipul 看起来@Kevin Nelson 在这个方面走在了正确的轨道上。检查他的答案。但是,如果您不打算使用任何客户端脚本,则可能必须包含“选择我的大学”按钮。
        【解决方案5】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-04-19
          • 1970-01-01
          • 2013-02-25
          • 2023-03-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多