Показать сообщение отдельно
  #1 (permalink)  
Старый 06.08.2014, 11:18
Аспирант
Отправить личное сообщение для Deymos Посмотреть профиль Найти все сообщения от Deymos
 
Регистрация: 14.01.2013
Сообщений: 33

Замена символов. Простой вопрос
Здравствуйте, уважаемые форумчане!

Столкнулся с вопросом, есть код:

$(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>&nbsp;&nbsp;
		<button type="submit" name="del_filter" value="<?=GetMessage("IBLOCK_DEL_FILTER")?>"><?=GetMessage("IBLOCK_DEL_FILTER");?></button>
	</div>
</form>

Последний раз редактировалось Deymos, 06.08.2014 в 11:21.
Ответить с цитированием