Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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.
Ответить с цитированием
  #2 (permalink)  
Старый 06.08.2014, 13:48
Аспирант
Отправить личное сообщение для Deymos Посмотреть профиль Найти все сообщения от Deymos
 
Регистрация: 14.01.2013
Сообщений: 33

Неужели никто не знает? Ребят, очень надо!!!!!
Ответить с цитированием
  #3 (permalink)  
Старый 06.08.2014, 16:43
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,138

В таком даже заядлые и не исправимые альтруисты ковыряться не будут.
Имхо тебе нужно научится разделять серверные скрипты разметку и скрипты на клиенте
Ответить с цитированием
  #4 (permalink)  
Старый 13.08.2014, 12:17
Аватар для ixth
Профессор
Отправить личное сообщение для ixth Посмотреть профиль Найти все сообщения от ixth
 
Регистрация: 19.01.2010
Сообщений: 354

Юзай $('[name="arrFilter_pf\\[MARKA\\]"]') и $('[name="arrFilter_pf\\[MODEL\\]"]') соответственно.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по примеру из учебника (самый простой jQuery+ajax?) Temik2704 jQuery 2 22.04.2014 18:20
Всплытие событий или что то не так... Кирюха =) jQuery 6 30.03.2013 12:56
простой вопрос по Ajax kichSman jQuery 6 26.04.2012 01:42
Простой вопрос yuri.gordeev Общие вопросы Javascript 5 10.02.2012 14:31
Простой вопрос onClick alex2001 Элементы интерфейса 3 11.07.2010 18:19