#php #jquery #sql
#php #jquery #sql
Вопрос:
у меня есть два выпадающих списка из базы данных. теперь я хочу, чтобы при выборе первого выпадающего списка он фильтровал данные из второго выпадающего списка, как я могу это сделать?
Комментарии:
1. Его среднее значение дает мне результат с тем же идентификатором
2. Пожалуйста, найдите в Google несколько руководств.
3. если у вас есть 2 массива, которые вы можете использовать
array_diff
, чтобы получить разницу.4. Покажите свой код.
5. Пожалуйста, покажите нам свой код, чтобы мы могли помочь ему больше, я думаю, вам следует использовать идентификатор (не имя) первого выбранного выпадающего значения, и тогда вы получите правильные данные
Ответ №1:
Вы можете сделать это с помощью многоуровневого зависимого выпадающего плагина с выпадающими списками, зависящими от jQuery: http://www.jqueryscript.net/form/Multilevel-Dependent-Dropdown-Plugin-With-jQuery-Dependent-Dropdowns.html
Базовое использование:
/*
* Copyright Shorif Ali (http://github.com/shorifali/)
* Licensed under MIT (https://opensource.org/licenses/MIT)
*
*/
'use strict';
$(document).ready(function() {
$.extend($, {
option: '<option value="0" selected="selected">Select Option</option>'
});
// Method to clear dropdowns down to a given level
$.extend($, {
clearDropDown: function(arrayObj, startIndex) {
$.each(arrayObj, function(index, value) {
if(index >= startIndex) {
$(value).html($.option);
}
});
}
});
// Method to disable dropdowns down to a given level
$.extend($, {
disableDropDown: function(arrayObj, startIndex) {
$.each(arrayObj, function(index, value) {
if(index >= startIndex) {
$(value).attr('disabled', 'disabled');
}
});
}
});
// Method to disable dropdowns down to a given level
$.extend($, {
enableDropDown: function(that) {
that.removeAttr('disabled');
}
});
// Method to generate and append options
$.extend($, {
generateOptions: function(element, selection, limit) {
var options = '';
for(var i = 1; i <= limit; i ) {
options = '<option value="' i '">Option ' selection '-' i '</option>';
}
element.append(options);
}
});
// Select each of the dropdowns
var firstDropDown = $('#first');
var secondDropDown = $('#second');
var thirdDropDown = $('#third');
// Hold selected option
var firstSelection = '';
var secondSelection = '';
var thirdSelection = '';
// Hold selection
var selection = '';
// Selection handler for first level dropdown
firstDropDown.on('change', function() {
// Get selected option
firstSelection = firstDropDown.val();
// Clear all dropdowns down to the hierarchy
$.clearDropDown($('select'), 1);
// Disable all dropdowns down to the hierarchy
$.disableDropDown($('select'), 1);
// Check current selection
if(firstSelection === '0') {
return;
}
// Enable second level DropDown
$.enableDropDown(secondDropDown);
// Generate and append options
selection = firstSelection;
$.generateOptions(secondDropDown, selection, 4);
});
// Selection handler for second level dropdown
secondDropDown.on('change', function() {
secondSelection = secondDropDown.val();
// Clear all dropdowns down to the hierarchy
$.clearDropDown($('select'), 2);
// Disable all dropdowns down to the hierarchy
$.disableDropDown($('select'), 2);
// Check current selection
if(secondSelection === '0') {
return;
}
// Enable third level DropDown
$.enableDropDown(thirdDropDown);
// Generate and append options
selection = firstSelection '-' secondSelection;
$.generateOptions(thirdDropDown, selection, 4);
});
// Selection handler for third level dropdown
thirdDropDown.on('change', function() {
thirdSelection = thirdDropDown.val();
// Final work goes here
});
/*
* In this way we can make any number of dependent dropdowns
*
*/
});
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<div class="row">
<div class="col-lg-6 col-lg-offset-3">
<div class="form-group">
<label for="first">First Level Dropdown</label>
<select id="first" class="form-control" role="listbox">
<option value="0" selected="selected">Select Option</option>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
<option value="4">Option 4</option>
</select>
</div>
<div class="form-group">
<label for="second">Second Level Dropdown</label>
<select id="second" class="form-control" role="listbox"><option value="0" selected="selected">Select Option</option><option value="1">Option 1-1</option><option value="2">Option 1-2</option><option value="3">Option 1-3</option><option value="4">Option 1-4</option></select>
</div>
<div class="form-group">
<label for="third">Third Level Dropdown</label>
<select id="third" class="form-control" role="listbox"><option value="0" selected="selected">Select Option</option><option value="1">Option 1-2-1</option><option value="2">Option 1-2-2</option><option value="3">Option 1-2-3</option><option value="4">Option 1-2-4</option></select>
</div>
</div>
</div>