使用下拉列表html中的选定值

时间:2014-12-15 03:47:05

标签: javascript php html mysql

我正在尝试从下拉菜单(列表)中获取值,并使用该值创建另一个下拉菜单。我在mysql中有一个数据库,在该数据库中是一个部门列表,然后每个部门都有一个课程列表。我想要做的是为我已经创建的部门提供一个下拉列表,然后使用用户选择的值来创建课程的下拉列表。

编辑:更新的代码:

JavaScript dropmysql.js

<!-- start: Container -->
<div class="container">

  <!-- start: Contact Form -->
  <div class="title">
    <h4>Contact Form</h4>
  </div>

  <!-- start: Contact Form -->
  <div id="contact-form">

    <form method="post" action="assets/upload.php" enctype="multipart/form-data">

      <fieldset>
        <div class="clearfix">
          <label for="name"><span>Name:</span>
          </label>
          <div class="input">
            <input tabindex="1" size="18" id="name" name="name" type="text" value="">
          </div>
        </div>

        <div class="clearfix">
          <label for="email"><span>Email:</span>
          </label>
          <div class="input">
            <input tabindex="2" size="25" id="email" name="email" type="text" value="" class="input-xlarge">
          </div>
        </div>

        <div class="dropdown">
          <label for="department"><span>Department:</span>
          </label>
          <select tabindex="3" type="text" name="Department">
            <?php while($dept=m ysqli_fetch_array($result)) { echo "<option value=\" ".$dept['dname']."\ ">".$dept[ 'dname']. "</option>"; } //<option value="volvo">Volvo</option>
            ?>
          </select>
        </div>
        <div class="dropdown" id="course-container">
          <!-- SELECT WILL BE PLACED USING JAVASCRIPT -->
        </div>

        <div class="actions">
          <p>
            <label for="file"><span>Select file to upload:</span>
            </label>
            <input tabindex="8" type="file" name="fileToUpload" id="fileToUpload">
          </p>
          <p>
            <input tabindex="3" type="submit" value="Upload File" name="submit" class="btn btn-succes btn-large">
          </p>
        </div>

      </fieldset>
    </form>

  </div>
  <!-- end: Contact Form -->
</div>
<!-- end: Container -->
<!-- start: Java Script -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="js/jquery-1.8.2.js"></script>
<script src="js/bootstrap.js"></script>
<script src="js/flexslider.js"></script>
<script src="js/carousel.js"></script>
<script src="js/dropmysql.js"></script>
<script def src="js/custom.js"></script>
<!-- end: Java Script -->

PHP upload.php

<?php
	include ("../config/database.php");

	if (isset($_POST) && !empty($_POST)) {
		$department = $_POST['department'];

		$query = "SELECT * FROM courses WHERE dname = '{$department}'";

		while (mysql_fetch_assoc($query)) {
   			echo '<option value="{$value}>{$name}</option>"'; // Loop through the database again and echo them here
		}
	}
?>

PHP ddown.php:

<?php
include ("../config/database.php");

if (isset($_POST) && !empty($_POST)) {
    $department = $_POST['department'];

    $query = "SELECT * FROM courses WHERE dname = '{$department}'";

    while (mysql_fetch_assoc($query)) {
        echo '<option value="{$value}>{$name}</option>"'; // Loop through the database again and echo them here
    }
}

&GT;

2 个答案:

答案 0 :(得分:0)

如果您有一个如下所示的select元素:

<!-- language: lang-html -->
     <input type="hidden" id="depthidden" name="depthidden">
     <select tabindex="3" id="Department">
        <option value="BSEN">BSEN</option>
        <option value="CPSC">CPSC</option>
        <option value="ENGG">ENGG</option>
      </select>

运行此代码:

<!-- language: lang-js -->

    var d = document.getElementById("Department");
    document.getElementsById('depthidden').Value = d.options[d.selectedIndex].value;

上面只是一个JS演示来帮助你。

php部分:

$dname = mysql_real_escape_string($_POST['depthidden']);
while($dept= mysqli_fetch_assoc($result)) 
 {
    if($dname==$dept[dname])
       echo "<option value = '".$dept[dname]."' selected>".$dept[dname]."</option>";
    else
       echo "<option value = '".$dept[dname]."'>".$dept[dname]."</option>"; 
 }

$ dname是要填充的部门名称。否则,删除if并保留else部分。

答案 1 :(得分:0)

首先,将id / class添加到第一个选择中会很有帮助,例如:

<select tabindex="3" type="text" name="Department" id="department">
    <option value="BSEN">BSEN</option>
    <option value="CPSC">CPSC</option>
    <option value="ENGG">ENGG</option>
</select>

您需要使用空选项设置第二个下拉列表,或者设置一个与此类似的空div

<div id="course-container">
   <!-- SELECT WILL BE PLACED USING JAVASCRIPT -->
</div>

然后可以使用与此类似的javascript文件:

$(function() {
    var course_container = $("div#course-container");
    var data = {};

    $('select#department').change(function() {
        $(course_container).html("<select id=\"courses\"></select>");
        var courses = $("select#courses");
        var d = document.getElementById("department");
        data['department'] = d.options[d.selectedIndex].value;

        $.ajax({
            url: "path/to/php/script.php",
            type: "post",
            data: data,
            success: function(response) {
                $(courses).innerHTML = response;
            }
        });
    });
});

然后只是这样的PHP脚本:

<?php

if (isset($_POST) && !empty($_POST)) {
    $department = $_POST['department'];

    $query = "SELECT * FROM `DATABASE` WHERE `DEPARTMENT` = {$department}";

    while (mysql_fetch_assoc($query)) {
        echo '<option value="{$value}>{$name}</option>"'; // Loop through the database again and echo them here
    }
}