Json problem ;(

Статус: Offline
Реєстрація: 04.07.2008
Повідом.: 682
Хочу сделать цепочку селектов.
Страна -> город -> район.

Сервер отдает мне чистый и правильный json
PHP:
echo "{results:[{value:1, name:'Option1'}, {value:2, name:'Option2'}]}";

А на клиентской стороне, у меня не могут заполнятся селекты((
Ответ от сервера - есть, json строка есть.

Вот фронтенд.
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<script type='text/javascript' src='js/jquery.js'></script>

<script type='text/javascript' src='js/jquery.autocomplete.js'></script>
<link rel="stylesheet" type="text/css" href="css/jquery.autocomplete.css" />

<script>    

(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 adjustAuto(){
  	var countryValue = $('#country').val();
  	var tmpSelect = $('#auto');
  	if(countryValue.length == 0) {
  		tmpSelect.attr('disabled','disabled');
  		tmpSelect.clearSelect();
  		adjustModel();
  	} else {
  		$.getJSON("gettype.php",{country:countryValue},function(data) { tmpSelect.fillSelect(data).attr('disabled','');/* adjustModel();*/ alert(data); });
  		
  	}
  };
  // выбор модели
  function adjustModel(){
  	var countryValue = $('#country').val();
  	var autoValue = $('#auto').val();
  	var tmpSelect = $('#model');
  	if(countryValue.length == 0||autoValue.length == 0) {
  		tmpSelect.attr('disabled','disabled');
  		tmpSelect.clearSelect();
  	} else {
  		$.getJSON("gettype.php",{country:countryValue,auto:autoValue},function(data) { tmpSelect.fillSelect(data).attr('disabled',''); });
  	}
  };
	
  $('#country').change(function(){
  	adjustAuto();
  }).change();
  $('#auto').change(adjustModel);
  $('#model').change(function(){
  	if($(this).val().length != 0) { alert('Выбор сделан!'); }
  });

});
</script>

<style>
ul{text-decoration: none;
list-style-type:none;
}
select,input{width:200px;height:25px;}
form{border:25px solid;}
</style>

</head>

<body>

<select id="temp"></select>
<div align="center">
						<form action="index.php" method="post" autocomplete="off" name="form_q" id="form_q">
						<div >
							<ul >
								<li >
									<p>Тип: </p> 
									<select id="country">
										<option value="1">q</option>
										<option value="2">w</option>
										<option value="3">e</option>
										<option value="4">r</option>
										<option value="5">t</option>
										<option value="6">y</option>
									</select>
								</li>
								<li >
									<p>Марка: </p> 
									<select id="auto" name="country" >
                                    </select>
								</li>
							</ul>
							<ul >
								<li>
									<p>Год: </p> 
									<select  id="PartYear" >
										<option selected="" value="0">- выбрать -</option>
										
									</select>
								</li>
								<li>
									<p>Модель: </p> 
									<select id="model" >
                                    <option value="">- выбрать -</option>
                                    </select>
									
								</li>
							</ul>
						</div>
						<div >
							<ul >
								<li >
									<input type="submit" value="Отправить"/> <br />
								</li>
							</ul>
						</div>
						</form>
					</div>


</body>
</html>

кого есть какие мысли ?
Буду рад помощи)):клас:
 
Останнє редагування:
Не совсем понятно что значит приходит UFT?
Если UTF8 то там вообще не должно быть проблем.
Убери iconv нафиг.

И лучше послать в базу SET NAMES 'utf8' вместо mysql_set_charset
и проверь что у тебя основная страница в браузере тоже содержит
header("Content-type: text/plain; charset=utf-8");
 
Кто сможет помочь с json'om?
 
Останнє редагування:
как он уже зае.. надоел.
чувак, иди в грузчики. это не твое.
 
попробуй пользоваться не блокнотом.
 
kosyak Причем тут блокнот не блокнот?
dr_mousefly Разве плохо когда человек стремится к лучшему?
 
kosyak Причем тут блокнот не блокнот?

Меньше вопросов будет по причине исчезновения банальных typo`в, и вырываний волос с выражениями "Какого х.я оно не работает если написано все правильно!?"

И еще установить firefox и плагин для него firebug, еще большее количество вопросов из разряда "почему не работает?" отпадет
 
Установил firebug давно))
Пользуюсь notepad++, phpDesigner.
Решение вопроса оказалось замена each на for который смотрит массив.
Спасибо всем
 
уже вторую тему открываешь и через несколько часов сам же отвечаешь, не спеши писать "не работает" обо всем подряд, особенно на ХФ. Нравиться как из тебя "дядьки" маленького мальчика делают? :)
 
dr_mousefly Разве плохо когда человек стремится к лучшему?

хорошо, когда он делает это сам и в области своих способностей.
в остальных случаях это не стремление к лучшему,
а стремление к убогости.

я же, например, не строю из себя грузчика и не создаю темы:
Ящик problem ;(
Мешок муки problem ;(
ПАМАГИТЕ перенести вон тот шкаф АААААА!!!!!111
 
Просто бывает что мучаешься 2 часа (или 2 дня).
А чужой глаз сразу видит ошибки))
 
для этого придумали отладчики
твоя проблема в том, что ты неуч
 
Назад
Зверху Знизу