Показать сообщение отдельно
  #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 почему-то не обрабатываются.

Подскажите, в чем загвоздка?
Ответить с цитированием