Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.06.2010, 14:53
Аспирант
Отправить личное сообщение для Юрий Шу Посмотреть профиль Найти все сообщения от Юрий Шу
 
Регистрация: 27.05.2010
Сообщений: 42

$.ajax. Изучаю Ajax
Начал изучать взаимодействие jQuery и Ajax.
Написал небольшой скрипт, который считает цену товара, исходя из выбранных данных:
<form method="post" id="price"> 
  <fieldset>
    <p>
	  <select name="good">
	    <option selected="selected">Выберите товар</option>
	    <option>Кефир</option>
	    <option>Молоко</option>
	    <option>Ряженка</option>
	  </select>
	</p>
	<p>
	  <select name="volume">
	    <option selected="selected">Выберите емкость</option>
	    <option>300 мл</option>
	    <option>500 мл</option>
	    <option>1 л</option>
	  </select>
	</p>
	<h1><span>0</span> руб.</h1>
  </fieldset> 
</form>

$(document).ready(function(){ 		
		$("#price select").change(function(){
			var good = $("select[name='good'] option:selected").text()
			var volume = $("select[name='volume'] option:selected").text()
	        $.ajax({ 
	           type: "POST", 
	           url: "events.php", 
	           data: { "good" : good, "volume" : volume }, 
	           success: function(msg){ 
	                $("<span>" + msg + "</span>").replaceAll("h1 span");
	           } 
	        });
		});
	});

if($_SERVER['HTTP_X_REQUESTED_WITH']=='XMLHttpRequest') {
      $price = array(
	          "Кефир"=>
	              array(
				  "300 мл"=>20,
				  "500 мл"=>30,
				  "1 л"=>48
				  ),
			  "Молоко"=>
	              array(
				  "300 мл"=>15,
				  "500 мл"=>25,
				  "1 л"=>36
				  ),
			  "Ряженка"=>
	              array(
				  "300 мл"=>21,
				  "500 мл"=>32,
				  "1 л"=>50
				  ));
      echo $price[$_POST['good']][$_POST['volume']];
}

Но вывод результирующей цены почему-то не работает. Если же вместо цены получать передаваемый массив POST, то данные видны, они приходят, но в массиве price почему-то не обрабатываются.

Подскажите, в чем загвоздка?
Ответить с цитированием
  #2 (permalink)  
Старый 08.06.2010, 15:20
Аспирант
Отправить личное сообщение для Юрий Шу Посмотреть профиль Найти все сообщения от Юрий Шу
 
Регистрация: 27.05.2010
Сообщений: 42

Нашел ошибку сам. Оказалось, что в массиве price почему-то не воспринимается кириллица. На латинице все работает.

В связи с этим вопрос. Почему кириллица не работает?
P.S. Кодировка html документа — utf-8.
Ответить с цитированием
  #3 (permalink)  
Старый 08.06.2010, 15:36
Профессор
Отправить личное сообщение для FRIE Посмотреть профиль Найти все сообщения от FRIE
 
Регистрация: 25.02.2010
Сообщений: 218

а ты пошли ему header в кодировке 1251 или какая у тебя там
а вообще советую делать всё в utf8 и тогра никаких проблем не будет
Ответить с цитированием
  #4 (permalink)  
Старый 08.06.2010, 15:45
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Юрий Шу, везде utf-8? PHP-скрипт тоже сохранен в utf-8?
Ответить с цитированием
  #5 (permalink)  
Старый 08.06.2010, 15:48
Аспирант
Отправить личное сообщение для Юрий Шу Посмотреть профиль Найти все сообщения от Юрий Шу
 
Регистрация: 27.05.2010
Сообщений: 42

e1f, пересохранил в utf-8. Все получилось. Спасибо.

Только еще вопрос. Насколько я понял, логично было бы данные с ценами хранить не в php-скрипте, а в json-файле и использовать $.getJSON для обработки полученных данных. Так?
Ответить с цитированием
  #6 (permalink)  
Старый 08.06.2010, 15:52
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Юрий Шу, данные логично хранить там, где этим данным самое место -- в базе данных. Mysql, Postgre, google.
Ответить с цитированием
  #7 (permalink)  
Старый 08.06.2010, 15:56
Аспирант
Отправить личное сообщение для Юрий Шу Посмотреть профиль Найти все сообщения от Юрий Шу
 
Регистрация: 27.05.2010
Сообщений: 42

e1f, хех. Спасибо. Но для практики, думаю, json подойдет
Ответить с цитированием
  #8 (permalink)  
Старый 08.06.2010, 16:04
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Плохая практика
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ajax запрос из класса, прокомментируйте плииз скрипт sav Ваши сайты и скрипты 0 04.06.2010 13:11
Не могу обратиться к элементам div, после того как они получены через $.ajax igsavenko jQuery 1 31.05.2010 17:53
Ajax разбор метода mycoding jQuery 14 21.05.2010 10:57
Как в ajax запросе передать файл методом POST mcpro jQuery 1 16.12.2009 11:41
Объясните как вызывается ajax скрипт AddressBook из формы prog90 AJAX и COMET 3 06.06.2009 16:12