Помогите пожалуйста с такой задачкой: Есть раскрывающийся список: HTML: <select> <option><?php echo $obj['wk1']; ?></option> <option><?php echo $obj['wk2']; ?></option> <option><?php echo $obj['wk3']; ?></option> <option><?php echo $obj['wk4']; }?></option> </select> Чуть ниже: PHP: <?php while($row2 = mysql_fetch_assoc($res2)) { ?> <tr><td> <?php echo $row2['name']; ?> </td> <td><?php echo '';?></td> </tr><br /> <? } ?> Напротив названия услуги ($row2['name']) нужно вывести цену, так, что если список стоит в позиции <option><?php echo $obj['wk1']; ?></option> цена будет выводиться $row2['price_wk1'] если <option><?php echo $obj['wk1']; ?></option> соответственно <td><?php echo $row2['price_wk1'];?></td> Всего 4 категории.
http://ru2.php.net/json_encode HTML: <select onchange="changePrice(this.value)"> ... <td id="price"></td> ... [js] prices = eval('{'+<?php echo json_encode($data); ?>+'}'); function changePrice(val) { document.getElementById('price').innerHTML = prices[val]; } [/js]
Kreker, что-то не работает( HTML: <select> <option onchange="changePrice(this.value)"><?php echo $obj['wk1']; ?></option> <option onchange="changePrice(this.value)"><?php echo $obj['wk2']; ?></option> <option onchange="changePrice(this.value)"><?php echo $obj['wk3']; ?></option> <option onchange="changePrice(this.value)"><?php echo $obj['wk4']; }?></option> </select> <input type="text" name="time" value="time"> <br><br> <h2><font color="maroon">Base services: </font></h2> <script> prices = eval('{'+<?php echo json_encode($data); ?>+'}'); function changePrice(val) { document.getElementById('price').innerHTML = prices[val]; } </script> <?php while($row2 = mysql_fetch_assoc($res2)) { ?> <tr><td> <?php echo $row2['name']; ?> </td></tr> <td id="price"></td><br/> <? } ?> По-моему между этими тегами что-то должно быть? HTML: <td id="price"></td>
Kreker А я думал только в питоне такая фишка есть) спс не знал) amen либо так должно быть в цикле, у тебя это в строчку выведет HTML: <tr> <td> <?php echo $row2['name']; ?> </td> <td id="price"> </td> </tr> либо так, в столбик HTML: <tr> <td> <?php echo $row2['name']; ?> </td> </tr> <tr> <td id="price"> </td> </tr> а то что то у тебя между <td></td>нету <tr></tr>
Вот тут ты в теги загружаешь свой прайс...когда меняешь селект... [js]document.getElementById('price').innerHTML = prices[val];[/js] идёт оно сюда HTML: <td id="price"></td> а вот тут у тебя вытаскивается цена [js]prices = eval('{'+<?php echo json_encode($data); ?>+'}');[/js] но ведь ты ее до этого нигде не использовал переменная $data до этого нигде не встречается...
Что-то типа такого: PHP: <select onchange="changePrice(this.value)"> <option name="wk1"><?php echo $obj['wk1']; ?></option> <option name="wk2"><?php echo $obj['wk2']; ?></option> <option name="wk3"><?php echo $obj['wk3']; ?></option> <option name="wk4"><?php echo $obj['wk4']; ?></option> </select> <?php $data = array(); $id = 0; while($row2 = mysql_fetch_assoc($res2)) { $data[] = array('wk1' => $row2['price_wk1'],'wk2' => $row2['price_wk2'],'wk3' => $row2['price_wk3']); ?> <tr><td> <?php echo $row2['name']; ?> </td> <td id="price<?php echo $id; ?>"></td> </tr><br /> <? $i++; } ?> <script type="text/javascript"> prices = eval('{'+<?php echo json_encode($data); ?>+'}'); function changePrice(val) { for (i in prices) { document.getElementById('price'+i).innerHTML = prices[i][val]; } } </script>
Нет...не работает((( [js]<div class="forms"> <form action="index.php" method="POST"> <h1> <?php while($obj = mysql_fetch_assoc($res)) { echo $obj['name']; ?></h1> <select onchange="changePrice(this.value)"> <option><?php echo $obj['wk1']; ?></option> <option><?php echo $obj['wk2']; ?></option> <option><?php echo $obj['wk3']; ?></option> <option><?php echo $obj['wk4']; ?></option> </select> <?php } ?> <input type="text" name="time" value="time"> <br><br> <h2><font color="maroon">Base services: </font></h2> <?php $data = array(); $id = 0; $i=1; while($row2 = mysql_fetch_assoc($res2)) { $data[] = array('wk1' => $row2['price_wk1'], 'wk2' => $row2['price_wk2'], 'wk3' => $row2['price_wk3'], 'wk4' => $row2['price_wk4']); ?> <tr><td> <?php echo $row2['name']; ?> </td> <td id="price<?php echo $id; ?>"></td></tr><br/> <? $i++; } print_r($data); ?> <script type="text/javascript"> prices = eval('{'+<?php echo json_encode($data); ?>+'}'); function changePrice(val) { for (i in prices) { document.getElementById('price'+i).innerHTML = prices[val]; } }[/js] Может до этого какие-нибудь библиотеки нужно подключить?
Ну что я могу сделать? Только посоветовать разобрать принцип работы и отладить. Не мне же поставили задачу сделать.