2017-03-02 95 views
0

选择从表中选择COL2这里是我的关键字表哪里哪里COL1值从多个选择下拉

mainCat | subCat1 
-----------+------------- 
Technology | Electronics 
Technology | Computers 
Technology | Nano 
Health  | Diet 
Health  | Fitness 
Health  | Exercise  

下面有两个选择框的代码。

当我从第一个下拉列表中选择Technology时,第二个下拉列表更新为Electronics, Computers, Nano。 但我现在的要求是从第一个下拉列表中选择多个值。说我选择Technology, Health,第二个下拉必须Elecronics, Computers, Nano, Diet, Fitness, Exercise

<html> 
<?php 
require_once 'dbconnect.php'; 
$result = mysql_query("SELECT DISTINCT mainCat FROM keyword"); 
?> 

<head> 
<link rel="stylesheet" href="assets/css/bootstrap.min.css" type="text/css"/> 
<script src="assets/jquery-1.11.3-jquery.min.js"></script> 
<script> <!-- SCRIPT TO UPDATE SUB CAT_1 DROPDOWN --> 
function showUser(str) { 
if (str == "") { 
    document.getElementById("e7").innerHTML = ""; 
    return; 
} else { 
    if (window.XMLHttpRequest) { 
     // code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp = new XMLHttpRequest(); 
    } else { 
     // code for IE6, IE5 
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp.onreadystatechange = function() { 
     if (this.readyState == 4 && this.status == 200) { 
      document.getElementById("e7").innerHTML = this.responseText; 
     } 
    }; 
    xmlhttp.open("GET","getsub1.php?q="+str,true); 
    xmlhttp.send(); 
} 
} 
</script> 
</head> 
<body> 
<form method="post" action=""> 
Main Category Keyword : <select multiple="" name="e6" id="e6" style="width: 300px; display: none;" onchange="showUser(this.value)" class="populate" tabindex="-1"> 
<option value="">Select Main Category</option> 
<?php 
while ($row = mysql_fetch_array($result)) { 
echo "<option value='" . $row['mainCat'] . "'>" . $row['mainCat'] . "</option>"; 
} 
?> 
</select> 
</br> 
Sub Category Keyword : <select name="e7" multiple="" id="e7" style="width: 300px; display: none;" class="populate" tabindex="-1"> 
<option value="">Select Sub Category</option> 
</select> 
</br> 
<input type="submit" name="submit" value="Add"> 
</form> 
</body> 
</html> 

这里更新是我getsub1.php

<html> 
<head> 
</head> 
<body> 
<?php 
require_once 'dbconnect.php'; 
$q = $_GET['q']; 
echo"<option value=''>Select Sub Category</option>"; 
$sql1="SELECT DISTINCT subCat1 FROM keyword WHERE mainCat = '".$q."'"; 
$result1 = mysql_query($sql1); 
while ($row = mysql_fetch_array($result1)) {  
echo "<option value='" . $row['subCat1'] . "'>" . $row['subCat1'] . " </option>"; 
} 
?> 
</body> 
</html> 

什么我可以改变,使其工作有什么建议?

+0

https://www.sanwebe.com/2013/05/select-box-change-dependent-options-dynamically – sumit

+0

@sumit看到你的链接,这是单选择下拉。但我需要多个选择值。 – Sashi

回答

0

你可以试试这个

SELECT subCat1 FROM keyword WHERE mainCat = '".$q."' order by subCat1" ; 
+0

仅在选择单个值时起作用。选择多个值仍然不起作用,即使添加了这个:order by subCat1“; – Sashi

0

首先改变你的表,因为它不与SQL标准制造。

ID|MainCat 
--+------- 
1 |Technology 
2 |Health 



mainCat | subCat1 
-----------+------------- 
1   | Electronics 
1   | Computers 
1   | Nano 
2   | Diet 
2   | Fitness 
2   | Exercise 

然后你就可以添加滤镜阵列,当用户检查一个主要的类别,索引添加到阵列:

$filters; 
$filters[0] = 1; 

//用户选择另一个

$filters[1] = 2; 

之后,你可以创建您的搜索查询: (Pseudocode

//$search_string = "SELECT subcat FROM subcatsTable where "; 

    //foreach filter in filters 
    //$search_string+= "maincat="+filter 
    //$search_string+= " OR " 
    //$result = mysql_query($search_string); 
+0

感谢您的可能答案,但我特别想为我的特定表的解决方案。在这些行查找代码更改xmlhttp.open(”GET “,”echoq.php?q =“+ str,true);主要类别关键字: