如何使我的动态下拉列表依赖于父下拉?

时间:2015-01-20 02:13:56

标签: javascript php jquery mysql

我有一个从属下拉列表。 sub_cat取决于parent_cat

同时它也是动态的,用户可以根据需要添加其他内容。

我的问题从这里开始,依赖下拉已经在工作,其中第二个下拉列表sub_cat依赖于第一个下拉列表parent_cat中选择的内容。 但是,当我点击Add Process(添加其他)sub_cat时。 sub_cat现在是空的。

如何使其工作,如果我点击添加进程,将填充sub_cat也取决于在parent_cat中选择的内容。

这是我的代码: 的index.php

<html>
 <head>
  <script type="text/javascript" src="js/jquery.js"></script>
  <script type="text/javascript" src="js/loadScript.js"></script>
  <script type="text/javascript" src="js/dynamic.js"></script>
 </head>
 <body>
  <form method="GET" action="input.php">
        <label for="category">Parent Category</label>
         <?php
          echo'<select name="parent_cat" id="parent_cat">';
          while($row = $query_parent->fetch()) {
          echo '<option value="'.$row['w_id'].'">' . $row['wafer_type'] . '</option>'; 
          }
          echo '</select>';
         ?>
     <br/>
         <?php
          require 'second_dd.php';
         ?>
     <input type="button" name="add_item" value="Add Process  " onClick="addMore()" />
     <br><br>
     <input type="submit">      
  </form>
 </body>
</html>

second_dd.php

<div id="product">
    <select name="sub_cat[]" id="sub_cat"></select>
</div> 

loadsubcat.php

<?php 
include 'db/pdo-connect.php';

$parent_cat = $_GET['parent_cat'];

    $query = $conn->prepare("SELECT * FROM process WHERE wafer_id = {$parent_cat}");
$query->execute();

while($row = $query->fetch()) {
    echo '<option value="'.$row['p_id'].'">' . $row['process_name'] . '</option>'; 
    }
?>

loadscript.js

$(document).ready(function() {

    $("#parent_cat").change(function() {
        $(this).after('<div id="loader"><img src="img/loading.gif" alt="loading subcategory" /></div>');
        $.get('loadsubcat.php?parent_cat=' + $(this).val(), function(data) {
            $("#sub_cat").html(data);
            $('#loader').slideUp(200, function() {
                $(this).remove();
            });
        }); 
    });

});

dynamic.js - 这是用于添加第二个下拉列表。

function addMore() {
    $("<div>").load("second_dd.php", function() {
            $("#product").append($(this).html());
    }); 
}
  

我的数据库是这样的:

parent_cat

id, category

sub_cat

id, category_id, sub_category

1 个答案:

答案 0 :(得分:0)

档案dynamic.php做了什么?

选择器$("<div>")不正确,找不到任何元素,.load函数不会执行脚本。只需加载文件内容。