Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Установить selected в динамических списках при загрузке страницы (https://javascript.ru/forum/jquery/5125-ustanovit-selected-v-dinamicheskikh-spiskakh-pri-zagruzke-stranicy.html)

FlintOFF 18.09.2009 00:39

Установить selected в динамических списках при загрузке страницы
 
Добрый день.
Пишу сайт, для удобства пользователя решил подгружать в сортировке городов динамические списки на Jquery методом getJSON. Все замечательно работает только не могу уже неделю реализовать простую вещь. Дело в том что когда пользователь сделал выбор в динамических списках, JavaScipt переходит на другую страницу где в URL прописаны параметры сортировки, и уже на другой странице я хочу что б select были заполнены по умолчанию выбранными параметрами пользователя.

Подскажите есть ли встроенные возможности в Jquery для "автозаполнения"?

P.S. вот сам скрипт. не удивляйтеся обратным слешам, он у меня выводится через echo на PHP и замечательно работает.
<script src="'.$site_link.'ajax/js/jquery-1.3.1.js" type="text/javascript"></script>

<script type="text/javascript">
(function($){
  // очищаем select
  $.fn.clearSelect = function() {
	  return this.each(function(){
		  if(this.tagName==\'SELECT\') {
		      this.options.length = 0;
		      $(this).attr(\'disabled\',\'disabled\');
		  }
	  });
  }
  // заполняем select
  $.fn.fillSelect = function(dataArray) {
	  return this.clearSelect().each(function(){
		  if(this.tagName==\'SELECT\') {
			  var currentSelect = this;
			  $.each(dataArray,function(index,data){
				  var option = new Option(data.text,data.value);
				  if($.support.cssFloat) {
					  currentSelect.add(option,null);
				  } else {
					  currentSelect.add(option);
				  }
			  });
		  }
	  });
  }
})(jQuery);
</script>
<script type="text/javascript">
$(document).ready(function(){

  // выбор области
  function adjustRegion(){
  	var countryValue = $(\'#country\').val();
  	var tmpSelect = $(\'#region\');
  	if(countryValue.length == 0) {
  		tmpSelect.attr(\'disabled\',\'disabled\');
  		tmpSelect.clearSelect();
  		adjustCity();
  	} else {
  		$.getJSON(\''.$site_link.'ajax/ajax_connect.php\',{control:\'region\',country:countryValue},function(data) { tmpSelect.fillSelect(data).attr(\'disabled\',\'\'); adjustCity(); });
  		
  	}
  };
  // выбор города
  function adjustCity(){
  	var countryValue = $(\'#country\').val();
  	var regionValue = $(\'#region\').val();
  	var tmpSelect = $(\'#city\');
  	if(countryValue.length == 0||regionValue.length == 0) {
  		tmpSelect.attr(\'disabled\',\'disabled\');
  		tmpSelect.clearSelect();
  	} else {
  		$.getJSON(\''.$site_link.'ajax/ajax_connect.php\',{control:\'city\',country:countryValue,region:regionValue},function(data) { tmpSelect.fillSelect(data).attr(\'disabled\',\'\'); });
  	}
  };
	
  $(\'#country\').change(function(){
  	adjustRegion();
  }).change();
  $(\'#region\').change(adjustCity);
  $(\'#city\').change(function(){
  	if($(this).val().length != 0)
  	{ 
  		function my_car_link()
		{
			
			var countryValue = $(\'#country\').val();
			var regionValue = $(\'#region\').val();
			var cityValue = $(\'#city\').val();
			
			my_link=top.location.href="'.$url_page.'"+countryValue+"-"+regionValue+"-"+cityValue+"/";
		
			return my_link;
		}
		my_car_link();
  	
  	}
  });

});
</script>

  <table border="1">
  <tr>
  <td>
  <select id="country" >
    <option value="">Страна</option>
    <option value="380">Украина</option>
    <option value="7">Россия</option>
  </select>
  </td>
  <td>
  <select id="region" disabled="disabled" ></select>
  </td>
  <td>
  <select id="city" disabled="disabled"></select>
  
  </td>

x-yuri 26.09.2009 13:24

почему не поручить php заполнение полей?

p.s. а как на счет использовать ?>...<?php вместо echo?

Sasha23rus 12.03.2010 10:42

Цитата:

Сообщение от x-yuri
почему не поручить php заполнение полей?

Ты могучий чел зарегился тут тока чтобы сказать спасибо.
Вот как я сделал
<input type='checkbox' <? if($ustk==1) echo "checked"; ?> value='1' name='ustk' />бла-бла

Работает на ура еще раз спасибо.


Часовой пояс GMT +3, время: 02:00.