Я использую каскадный плагин jQuery для выпадающего списка. (https://github.com/dnasir/jquery-cascading-dropdown)Dependent/Cascading Dropdown
У меня есть два выпадающих меню. «Клиент» и «Сайт».
На основании того, какой клиент вы выбрали, список сайтов должен быть соответствующим образом уменьшен, чтобы показывать только сайты для выбранного клиента. Я установил два php-скрипта returnClientList.php и returnSiteList.php, которые успешно возвращают массивы json с парой label/value.
Моя проблема заключается в том, что я не могу уменьшить список сайтов после выбора клиента. Событие успешно срабатывает, но я получаю только полный список. Как вы увидите, код использует запрос getJSON, который я знаю из руководства, отправляет HTTP GET. Глядя на сеть , панель хром показывает, что на самом деле не передается значение GET.
Надеюсь, что-то очевидное, но я новичок в jquery, поэтому помогите оценить.
Мой код:
JS
$('#edit-shift').cascadingDropdown({
selectBoxes: [
{
selector: '.clients',
source: function(request, response) {
$.getJSON('returnClientList.php', request, function(data) {
var selectOnlyOption = data.length <= 1;
response($.map(data, function(item, index) {
return {
label: item.label,
value: item.value,
selected: selectOnlyOption // Select if only option
};
}));
});
}
},
{
selector: '.sites',
requires: ['.clients'],
source: function(request, response) {
$.getJSON('returnSiteList.php', request, function(data) {
var selectOnlyOption = data.length <= 1;
response($.map(data, function(item, index) {
return {
label: item.label,
value: item.value,
selected: selectOnlyOption // Select if only option
};
}));
});
}
},
{
onChange: function(event, value, requiredValues){}
}
]
});
PHP
//this script returns a json array for use in jquery autocomplete fields for site lists...
header('Content-type: application/json');
require("connect.php");
$client_id = $_GET['?'];
//do the query for sites that are active
$sql = "SELECT * FROM site WHERE active=1 AND client_id='$client_id' ORDER BY site_name ASC";
$result = mysql_query($sql) or die('Error: ' . mysql_error());
//loop the results and create php array
while($row = mysql_fetch_array($result)){
$arr[] = array('label' => $row['site_name'], 'value' => $row['id']);
}
echo json_encode($arr);