Здравствуйте!
Подскажите пожалуйста, как сохранить зависимые списки select и выбранные пункты списков при перезагрузки страницы? Может как-то можно оптимизировать код?
<select name="form_type" id="type_tov" size="1" onchange="select_size(); select_material();" disabled="disabled" class="not_active">
<option>--</option>
</select>
<label>Размер товара</label>
<select name="form_size" id="size_tov" size="1" disabled="disabled" class="not_active">
<option>--</option>
</select>
<label>Материал продукта</label>
<select name="form_material" id="material_list" size="1" disabled="disabled" class="not_active">
<option>--</option>
</select>
function select_tyoe(){
var name_cat = $("#cat").val();
var type_list = document.getElementById('type_tov');
var typeListLen = type_list.length;
var size_list = document.getElementById('size_tov');
var sizeListLen = size_list.length;
var listMaterial = document.getElementById("material_list");
var listMaterialLen = listMaterial.length;
if(name_cat != ''){
$.ajax({
url: "https://localhost/shop/admin/blocks/add_select_type_product.php",type: "POST",
data: "cat="+name_cat,
dataType: "html",
cache: false,
success: function(data){
if(sizeListLen > 1){
$('#size_tov').find('option').remove();/*удаление старых данных*/
$('<option value="">--</option>').fadeIn(300).appendTo('#size_tov');
}
if(listMaterialLen > 1){
$('#material_list').find('option').remove();/*удаление старых данных*/
$('<option value="">--</option>').fadeIn(300).appendTo('#material_list');
}
$('#type_tov').find('option').remove();/*удаление старых данных*/
$(data).fadeIn(300).appendTo('#type_tov');
type_list.size=type_list.length;
type_list.classList.remove("not_active");
type_list.disabled=false;
}
});
}else{
if(typeListLen > 1){
$('#type_tov').find('option').remove();/*удаление старых данных*/
$('<option value="">--</option>').fadeIn(300).appendTo('#type_tov');
type_list.size=1;
type_list.classList.add("not_active");
type_list.disabled="disabled";
}
if(sizeListLen >= 1){
$('#size_tov').find('option').remove();/*удаление старых данных*/
$('<option value="">--</option>').fadeIn(300).appendTo('#size_tov');
size_list.size=1;
size_list.classList.add("not_active");
size_list.disabled="disabled";
}
if(listMaterialLen >= 1){
$('#material_list').find('option').remove();/*удаление старых данных*/
$('<option value="">--</option>').fadeIn(300).appendTo('#material_list');
listMaterial.size=1;
listMaterial.classList.add("not_active");
listMaterial.disabled="disabled";
}
}
};
function select_size(){
var cat_tov = $("#cat").val();
var type_tov = $("#type_tov").val();
var size_list = document.getElementById('size_tov');
var listSizeLen = size_list.length;
var listMaterial = document.getElementById("material_list");
var listMaterialLen = listMaterial.length;
if(type_tov != '' && type_tov.trim() != 'dvukhspalnye_komplekty' && type_tov.trim() != 'odnospalnye_komplekty' && type_tov.trim() != 'polutornye_komplekty' && type_tov.trim() != 'komplekty_semeynoe' && type_tov.trim() != 'euro_komplekty'){
$.ajax({
url: "https://localhost/shop/admin/blocks/add_select_size_product.php",type: "POST",
data: "size="+cat_tov,
dataType: "html",
cache: false,
success: function(data){
$('#size_tov').find('option').remove();/*удаление старых данных*/
$('<option value="">--</option>').fadeIn(300).appendTo('#size_tov');
$(data).fadeIn(300).appendTo('#size_tov');
size_list.classList.remove("not_active");
size_list.disabled=false;
size_list.size=listLen;
}
});
}else{
if(listSizeLen != 1 || type_tov.trim() == '' || type_tov.trim() == 'dvukhspalnye_komplekty' || type_tov.trim() == 'odnospalnye_komplekty' || type_tov.trim() == 'polutornye_komplekty' || type_tov.trim() == 'komplekty_semeynoe' || type_tov.trim() == 'euro_komplekty'){
$('#size_tov').find('option').remove();/*удаление старых данных*/
$('<option value="">--</option>').fadeIn(300).appendTo('#size_tov');
size_list.classList.add("not_active");
size_list.disabled="disabled";
}
if(listMaterialLen != 1){
$('#material_list').find('option').remove();/*удаление старых данных*/
$('<option value="">--</option>').fadeIn(300).appendTo('#material_list');
listMaterial.size=1;
listMaterial.classList.add("not_active");
listMaterial.disabled="disabled";
}
}
};
function select_material(){
var name_cat = $("#cat").val();
var type_tov_selet = $("#type_tov").val();
var material_title = type_tov_selet;
var material_list = document.getElementById('material_list');
var listLen = material_list.length;
if(type_tov_selet != ''){
$.ajax({
url: "https://localhost/shop/admin/blocks/add_select_material_product.php",type: "POST",
data: "cat="+name_cat+"&type_tovara="+type_tov_selet+"&material="+material_title,
dataType: "html",
cache: false,
success: function(data){
$('#material_list').find('option').remove();/*удаление старых данных*/
$('<option value="">--</option>'+data).appendTo('#material_list');
material_list.classList.remove("not_active");
material_list.disabled=false;
}
});
}else{
if(listLen >= 1){
$('#material_list').find('option').remove();/*удаление старых данных*/
$('<option value="">--</option>').fadeIn(300).appendTo('#material_list');
material_list.classList.add("not_active");
material_list.disabled="disabled";
}
}
};