Есть конечный из трёх списков вывода: Рубрик, Разделов, Категорий
Категории могут быть, а могут не быть. В зависимости от Раздела.
Поэтому поле категорий порой остается пустым.
Не знаю, как изменить JS код, чтобы пустое поле Категория не отображалось.
Вот HTML код вывода списка Категорий:
<label for="get_rubrika"><span class="text_nazvanie">Рубрика<span class="text_krasniy">*</span></span></label>
<select name="rubrika" class="pole_select" id="get_rubrika">
<option value="">--- Выберите рубрику ---</option>
<?php
$result5251 = mysql_query ("SELECT * FROM `rubrika` ORDER BY id_rubrika") or die(mysql_error());
if (mysql_num_rows($result5251) != 0) {
while ($myrow5251 = mysql_fetch_array ($result5251)) {
if ((isset($url_rubrika ) or isset($_POST['rubrika'])) and ($url_rubrika==$myrow5251['url_rubrika'] or $_POST['rubrika']==$myrow5251['url_rubrika'])) $select = "selected='selected'"; else $select = "";
echo "<option value='".$myrow5251['id_rubrika']."' ".$select.">".$myrow5251['name']."</option>";}}
?>
</select>
</div>
<div class="text_forma" id="sub_razdel">
<label for="get_razdel"><span class="text_nazvanie">Раздел<span class="text_krasniy">*</span></span></label>
<select name="razdel" class="pole_select" id="get_razdel"></select>
</div>
<div class="text_forma" id="sub_kategoriya">
<label for='get_kategoriya'><span class='text_nazvanie'>Категория<span class='text_krasniy'>*</span></span></label>
<select name='razdel' class='pole_select' id='get_kategoriya'></select>
</div>
Вот файл обработчик запроса:
<?php
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
require_once("../blocks/db.php");
$result = mysql_query ("SELECT * FROM `kategoriya` WHERE id_razdel ='".$_POST['razdel']."' ORDER BY id_kategoriya") or die(mysql_error());
if (mysql_num_rows($result) != 0) {
echo "<option value=''>- Выберите категорию -</option>";
while ($myrow = mysql_fetch_array($result)) {
if ($_POST['url_kategoriya'] and $_POST['url_kategoriya'] == $myrow['url_kategoriya']) $select = "selected='selected'"; else $select = "";
echo "<option value='".$myrow['id_kategoriya']."' ".$select.">".$myrow['name']."</option>";}}
if (empty($myrow)) {echo "<option value='no'> Категории отсутствуют</option>";}}
?>
Вот код JS:
$(document).ready(function () {
$('#sub_razdel').css('display', 'none');
$('#sub_kategoriya').css('display', 'none');
clearlist();
$('#sub_kategoriya').css('display', 'none');
var rubrikavalue = $("#get_rubrika option:selected").val();
//if (rubrikavalue === '') {clearlist(); }
if (rubrikavalue === '') {clearlist(); $('#sub_razdel').css('display', 'none'); }
getrazdel();
$("#get_rubrika").change(function() {
clearlist();
$('#sub_kategoriya').css('display', 'none');
var rubrikavalue = $("#get_rubrika option:selected").val();
//if (rubrikavalue === '') {clearlist(); }
if (rubrikavalue === '') {clearlist(); $('#sub_razdel').css('display', 'none'); }
getrazdel();
})
//getrazdel();
//getkategoriya();
function getrazdel() {
var rubrika_value = $("#get_rubrika option:selected").val();
var url_razdel = $("#url_razdel").val();
var razdel = $("#get_razdel");
var getrazdel_value = razdel.val();
if (rubrika_value === "") {
razdel.attr("disabled",true);
} else {
razdel.attr("disabled",false);
$('#get_razdel').html('<option value="">Подождите...</option>');
razdel.load('get_razdel.php',{rubrika : rubrika_value, url_razdel : url_razdel});
$('#sub_razdel').css('display', 'block');
}
$("#get_razdel").change(function() {
getkategoriya();
})
}
function getkategoriya() {
// var razdel_value = $("#razdel_id").val();
var razdel_value = $("#get_razdel option:selected").val();
var url_kategoriya = $("#url_kategoriya").val();
var kategoriya = $("#get_kategoriya");
if (razdel_value === "") {
kategoriya.attr("disabled",true);
} else {
kategoriya.attr("disabled",false);
$('#get_kategoriya').html('<option value="">Подождите...</option>');
kategoriya.load('get_kategoriya.php',{razdel : razdel_value, url_kategoriya : url_kategoriya});
$('#sub_kategoriya').css('display', 'block');
}
}
function clearlist() {
$("#get_razdel").empty();
$("#get_kategoriya").empty();
}
});