Сделал! Вот как:
В <select> добавил id (<select id="sel">), чтобы можно было оперировать им в javascript.
В <td> таблицы также назначил id="result", сюда будет выводиться стоимость.
Затем в цикл while добавил $noteprice[] = $rownotebook[1], чтобы получать данные из запроса в массив $noteprice.
Вот код:
Код:
|
<table><tr><td>
<select id="sel">
<option value="def" selected>Сделайте выбор
<?php
while ($rownotebook=mysql_fetch_array($notebook))
{
echo "<option>".$rownotebook['name']."</option>";
$noteprice[] = $rownotebook[1];
}
?>
</select>
</td>
<td id="result"></td>
</tr></table> |
Затем написал код на js ниже (обязательно ниже!) цикла while:
Код:
|
<script>
var price =['',<?php echo implode(",", $noteprice); ?>];
var sel = document.getElementById("sel");
sel.onchange = function()
{
var s = price[sel.selectedIndex];
var r = document.getElementById("result");
r.innerHTML = s;
};
</script> |
Разберем этот код:
Создаем массив в js по типу var price = [a,b,c,d,...]. Но в качестве значений (a,b,c,d,...) мы берем то, что "отдал" нам php: <?php echo implode(",", $noteprice); ?>. Что отдает нам php? При помощи функции implode массив $noteprice соединяется в строку, используя запятую между значениями. То есть он в моем случае отдает 300,400,500
Ну а так как первый option у меня не должен иметь какое-либо значение (<option value="def" selected>Сделайте выбор), первое значение массива для js мы определим как "пустое место" (одинарные кавычки без значения).
Код:
|
var price = ['',<?php echo implode(",", $noteprice); ?>]; |
Теперь определим переменную, например, sel. Она будет присваивать наш select по его id
Код:
|
var sel = document.getElementById("sel"); |
Поднимем функцию, которая будет срабатывать каждый раз, когда пользователем будет осуществлен выбор в select
Код:
|
sel.onchange = function() |
Что происходит при выборе чего-нибудь в select? Переменной s (например) будет присваиваться значение, которое соответствует выборке из массива price[]. Где значение между квадратными скобками - выбранный пункт в select'е
Код:
|
var s = price[sel.selectedIndex]; |
Также в этой же функции определяется переменная, допустим, r. Ей присваивается значение, которое соответствует нашему месту в таблице (в ячейке td) согласно указанному id="result"
Код:
|
var r = document.getElementById("result"); |
Теперь просто "говорим", что нужно ввести данные (innerHTML) в место, определенное переменной r. Данные должны соответствовать полученному значению при помощи переменной s
Вот и все. Если я где то неправильно что-то описал - пожалуйста, поправьте меня. Я только учусь )