установить значение в input относительно select-та
только подумал о изучении JavaScripts, как уже очень нужно скриптик...
вопрос такой: есть таблица, в ней название товара насвание поставщика и цена товара. как сделать так, что бы в форме при выборе в первом "select"-те названия товара и при выборе в другом "select"-те названия фирмы в "input" автоматом проставлялась цена помогите кто может |
Предлагаю такие варианты.
1.Отсылаешь форму на сервер тот обрабатывает данные, считает цену и назад возвращает её клиенту а потом уже при помощи JavaScript устанавливаешь её в input. 2.По событию onchange получаешь выбранные значения. Анализируешь их и передаешь дальше в функцию в которой алгоритм высчитывания цены и потом устанавливаешь значение в input. |
у меня примерно такая формочка, какой вариант мне более подходит?
<form name="form1" method="post" action="warehouse_nakl.php"> <p><label class="cat10">Товар</label> </p> <select name="tovar_id" class="vvid0"> <? $result = mysql_query("SELECT id,SUBSTR(NAME,1,20) AS name FROM goods",$db); if (mysql_num_rows($result) > 0) { $myrow = mysql_fetch_array($result); do { printf("<option value='%s'>%s</option>",$myrow["id"],$myrow["name"]); } while ($myrow = mysql_fetch_array($result)); } ?> </select> <label class="cat10">Поставщик </label> <select name="firma" class="vvid01" > <? $result = mysql_query("SELECT id,SUBSTR(NAME,1,20) AS name FROM firma",$db); if (mysql_num_rows($result) > 0) { $myrow = mysql_fetch_array($result); do { printf("<option value='%s'>%s</option>",$myrow["id"],$myrow["name"]); } while ($myrow = mysql_fetch_array($result)); } ?> </select> <label class="cat21">Цена <input type="text" name="price" id="2" maxlength="15" size="15" class="vvid"> </label> <p> <label> <input type="submit" name="submit" id="submit" value="Ok" class="forma"> </label> </p> |
Да любой! Смотря че нужно.
ОФФТОП: Только <?php $result = mysql_query("SELECT id,SUBSTR(NAME,1,20) AS name FROM goods",$db); if (mysql_num_rows($result)){ while ($myrow = mysql_fetch_array($result)) printf("<option value='%s'>%s</option>",$myrow["id"],$myrow["name"]); } ?> Несколько более компактная запись, да и условие я бы тоже похерил, но так надежнее. |
Любой это тогда когда знаком с JS, а я только сегодня приступаю к знакомству с ним. а скриптец нужен уже на завтра...
|
Если нужно быстро, то это в раздел работа. И нехер так языки программирования изучать, какими бы они примитивными не были. Заплати денег веб мастеру и он вкрутит тебе "лампочку" :)
|
посидел, попихтел и вот что сообразил:
<script language="javascript" type="text/javascript"> /*Создаем объект XMLHttpRequest*/ var xmlHttp = new XMLHttpRequest(); function callServer() { // Получить tovar_id и firma из web-формы var tovar_id = document.getElementByName("tovar_id").value; var firma = document.getElementByName("firma").value; // Продолжать только если есть значения обоих полей if ((tovar_id == null) || (tovar_id == "")) return; if ((firma == null) || (firma == "")) return; // Создать URL для подключения var url = "price.php?tovar_id=" + escape(tovar_id) + "&firma=" + escape(firma); // Открыть соединение с сервером xmlHttp.open("GET", url, true); // Установить функцию для сервера, которая выполнится после его ответа xmlHttp.onreadystatechange = updateInput; // SПередать запрос xmlHttp.send(null); } //Обработка ответа от сервера function updateInput() { if (xmlHttp.readyState == 4) { var rez = xmlHttp.responseText; document.getElementById("2").value = rez; } } </script> если че не так то подправте пожалуйста.... |
только вот не знаю правильно ли я делаю файл "price.php" и по какому принцыпу он возвращает результат, а сделал так:
<? include("blocks/db.php"); if (isset($_GET['tovar_id'])) {$tovar_id = $_GET['tovar_id']; if ($tovar_id == '') {unset($tovar_id);} } if (isset($_GET['firma'])) {$firma = $_GET['firma']; if ($firma == '') {unset($firma);} } $result = mysql_query("SELECT price FROM warehouse WHERE goods_id='$tovar_id' AND firma='$firma'",$db); $myrow = mysql_fetch_array($rezult); $price=$myrow['price']; ?> так в input-e мне видает ошыбку "<font color=ff0000><br /> <b>Notice</b>: Undefined variable: rezult in <b>C:\webserver\www\boohgalter\warehouse\price.php </b> on line <b>6</b><br /> </font><font color=ff0000><br /> <b>Warning</b>: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in <b>C:\webserver\www\boohgalter\warehouse\price.php </b> on line <b>6</b><br /> </font>" подскажите че не так |
ошыбку нашел и исправил... но теперь в input-е ничево не происходит
|
ура! заработало! добавил в файл
echo $price; и заработало! |
Часовой пояс GMT +3, время: 01:05. |