2015-01-11 3 views
0

Привет, у меня есть выпадающее меню, вытаскивающее из базы данных. Исходя из этого выбора, я хочу отобразить список опций в этой категории. Вот изображение базы данных, которое я хочу извлечь из каждого, присваивается идентификатор в соответствии с каждым выбором. http://imgur.com/VOi9ydB Вот что у меня естьВыпадающее окно из базы данных, влияющее на следующее выпадающее меню

` 
<?php 
require ("dbconnect.php"); 
$db = new mysqli($servername, $username, $password, $db); 
?> 

<div class="label">Select Store:</div> 

<select name="stores"> 
<option value = "">---Select---</option> 
<?php 
$queryusers = "SELECT * FROM `storeconst` ORDER BY `Store` ASC"; 
$db = mysqli_query($db, $queryusers); 
while ($d=mysqli_fetch_assoc($db)) { 
echo "<option value='{".$d['Store']."}'>".$d['Store']."</option>"; 
} 
?> 
    </select> 
<?php 
require ("dbconnect.php"); 
echo ("<br>"); 

$db = new mysqli($servername, $username, $password, $db); 
?> 

<div class="label">Incident Type:</div> 

<select name="names"> 
<option value = "">---Select---</option> 
<?php 
$queryusers = " SELECT * FROM `infractiontype` ORDER BY `infractiontype`.`IncidentType` ASC"; 
$db = mysqli_query($db, $queryusers); 
while ($d=mysqli_fetch_assoc($db)) { 
echo "<option value='{".$d['infractiontype']."}'>".$d['IncidentType']."</option>"; 
} 
?> 
    </select> 
<?php 
require ("dbconnect.php"); 
echo ("<br>"); 

$db = new mysqli($servername, $username, $password, $db); 
?> 

<div class="label">Incident Severity:</div> 

<select name="names"> 
<option value = "">---Select---</option> 
<?php 
$queryusers = " SELECT * FROM `severitytype` ORDER BY `SeverityType`.`ID` ASC"; 
$db = mysqli_query($db, $queryusers); 
while ($d=mysqli_fetch_assoc($db)) { 
echo "<option value='{".$d['severitytype']."}'>".$d['SeverityType']."</option>"; 
} 
?> 
    </select> 

dbconnect.php

<?php 
$servername = "localhost"; 
$username = "admin"; 
$password = "pass"; 
$db = "log"; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $db); 

// Check connection 
if ($conn->connect_error) { 
die("Connection failed: " . $conn->connect_error); 
} 
?> 

Что мне нужно сделать для того, чтобы мой следующий выпадающего меню, чтобы быть основаны от инцидентов типа и инцидентов Серьезность?

Cheers

+0

вам нужно выстрелить в Ajax запрос после выбора 2-й вариант, который вызывает РНР скрипт для q uery для новых параметров, которые будут отображаться в меню, а затем обратный вызов для этого запроса заполняет меню в DOM – chiliNUT

+0

. Я ничего не знаю о ajax, можете ли вы связать меня со статьей? – hyperj123

+0

umm, хм, посмотрим. w3schools обычно является страшным источником информации, но эта статья действительно выглядит прилично: http://www.w3schools.com/php/php_ajax_database.asp. Кроме того, если нет тонны опций, решение @ Misunderstood просто показывать и скрывать элементы без ajax также будет работать – chiliNUT

ответ

0

Это зависит от количества вариантов.

Несколько вариантов: Создание HTML для всех возможных ВЫБРАТЬ со стилем отображения: нет

на основе выбора для изменения .style.display = «блок» (или встроенный блок) использовать JavaScript

Если у вас есть много вариантов: передайте выбранную опцию через AJAX, где возвращаемое значение - это параметры HTML и использование innerHTML для добавления параметров.

Если вы указали на imgur включительно, и вы не знаете AJAX, то более быстрый путь - использовать метод CSS none/block.

HTML

<select id="sel" onchange="getNext();"> 
    <option value="1">Option1</option> 
    <option value="2">Option2</option> 
    <option value="3">Option3</option> 
    <option value="4">Option4</option> 
</select> 

<select id="sel1"> 
    <option>Option11</option> 
    <option>Option12</option> 
    <option>Option13</option> 
    <option>Option14</option> 
</select> 
<select id="sel2"> 
    <option>Option21</option> 
    <option>Option22</option> 
    <option>Option23</option> 
    <option>Option24</option> 
</select> 
<select id="sel3"> 
    <option>Option31</option> 
    <option>Option32</option> 
    <option>Option33</option> 
    <option>Option34</option> 
</select> 

CSS

#sel1,#sel2,#sel3{display:none;} 

JS

function getNext(){ 
    var sel = document.getElementById('sel'); 
    var next = sel.options[sel.selectedIndex].value; 
    document.getElementById('sel' + next).style.display = 'block'; 
} 
+0

Вся эта информация будет храниться в таблице в базе данных после ее выбора и отправки. http://imgur.com/VOi9ydB, если вы этого не видели, в этом списке перечислены все мои параметры с каждым ID. – hyperj123

+0

Если параметры будут динамическими, тогда создайте HTML на PHP. Если нет, то жесткий код HTML. – Misunderstood

+0

Вы можете создать пустой манекен SELECT, а затем установить его стиль в «none», когда вы измените другой на «block» или inline-block ' – Misunderstood

Смежные вопросы