установить значение в 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, время: 23:37. |