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