Здравствуйте, уважаемые форумчане!
Столкнулся с вопросом, есть код:
$(document).ready(function(){
$('[name=MARKA]').change(function(){
$.ajax({
type: "POST",
url: "<?=SITE_DIR?>search/marka.php",
data: { country: $(this).val() }
}).done(function( msg ) {
$obj = eval(msg);
$("[name=MODEL]").empty();
$("[name=MODEL]").append("<option value='0'>Все</option>");
$.each($obj,function(key,val){
$("[name=MODEL]").append($('<option>'+val["NAME"]+'</option>').attr('value',val["ID"]));
});
$("[name=MODEL]").each(function () {
$.data(this, 'combosex').API.updateOptions();
});
});
});
});
мне нужно вместо [name=MODEL] и [name=MARKA] сделать [name=arrFilter_pf[MARKA] и [name=arrFilter_pf[MODEL]]. Если сделать так, как я написал - скрипт не работает. Помогите, как реализовать задуманное.
Данный скрипт предназначен для отсеивания количества результатов второго select, т.е. в первом мы выбираем марку и на основе нее второй селект заполняется моделями, относящимися только в данной марке.
Для большего понимания прикладываю весь код, возможно кто-нибудь предложит более корректный вариант реализации. За ранее спасибо!
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<script>
$(document).ready(function(){
$('[name=arrFilter_pf[MARKA]]').change(function(){
$.ajax({
type: "POST",
url: "<?=SITE_DIR?>search/marka.php",
data: { country: $(this).val() }
}).done(function( msg ) {
$obj = eval(msg);
$("[name=arrFilter_pf[MODEL]]").empty();
$("[name=arrFilter_pf[MODEL]]").append("<option value=''>Все</option>");
$.each($obj,function(key,val){
$("[name=arrFilter_pf[MODEL]]").append($('<option>'+val["NAME"]+'</option>').attr('value',val["ID"]));
});
$("[name=arrFilter_pf[MODEL]]").each(function () {
$.data(this, 'combosex').API.updateOptions();
});
});
});
});
</script>
<?if(CModule::IncludeModule("iblock"))
{
$rs_country = CIBlockElement::GetList(array("NAME"=>"ASC"),array("IBLOCK_ID"=>5),array("ID", "NAME"));
$rs_hotel = CIBlockElement::GetList(array("NAME"=>"ASC"),array("IBLOCK_ID"=>2),false,false,array("ID","NAME"));
while($el = $rs_hotel->GetNext())
{
$hotels[] = $el;
}
while($el = $rs_country->GetNext())
{
$country[] = $el;
}
}
?>
<form name="<?echo $arResult['FILTER_NAME']."_form"?>" action="<?echo $arResult['FORM_ACTION']?>" method="get" class="ts-form ts-filter">
<?foreach($arResult['ITEMS'] as $arItem):
if(array_key_exists("HIDDEN", $arItem)):
echo $arItem['INPUT'];
endif;
endforeach;?>
<?if(!empty($arParams['FILTER_TITLE'])):?>
<h3><?=$arParams['FILTER_TITLE'];?></h3>
<?endif;?>
<div class="ts-items">
<div name="state" class="cell">
<label for="select1">Марка:</label>
<select name="arrFilter_pf[MARKA]" id="select1">
<?
echo "<option value=''>Все</option>";
foreach ($country as $el)
{
echo "<option value='".$el["ID"]."'>".$el["NAME"]."</option>";
}
?>
</select>
</div>
<div class="cell">
<label for="select2">Модель:</label>
<select name="arrFilter_pf[MODEL]" id="select2">
<option value="">Все</option>
<?
foreach ($hotels as $el)
{
echo "<option value='".$el["ID"]."'>".$el["NAME"]."</option>";
}
?>
</select>
</div>
<div class="cell">
<label for="select3">Год выпуска:</label>
<select name="GOD" id="select3">
<option value="">Все</option>
<?
$res_day=CIBlockPropertyEnum::GetList(Array("SORT"=>"ASC"), Array("IBLOCK_ID"=>3, "CODE"=>"GOD"));
while($enum_fields = $res_day->GetNext())
{
echo "<option value='".$enum_fields["ID"]."'>".$enum_fields["VALUE"]."</option>";
}
?>
</select>
</div>
</div>
<div class="ts-buttons" style="text-align: <?=$arParams['BUTTON_ALIGN'];?>">
<input type="hidden" name="set_filter" value="Y" />
<button type="submit" name="set_filter" value="<?=GetMessage("IBLOCK_SET_FILTER")?>"><?=GetMessage("IBLOCK_SET_FILTER");?></button>
<button type="submit" name="del_filter" value="<?=GetMessage("IBLOCK_DEL_FILTER")?>"><?=GetMessage("IBLOCK_DEL_FILTER");?></button>
</div>
</form>