|
|
|
| Господа, всем здрастье.
Такая проблеммка: Есть Java скрипт типа при изменении в поле SELECT нужно прочитать его значение и согласно этому вывести в другой SELECT список.
Как это реализовать? На данный момент заполнение написано на PHP но функция должна получить параметром нужное значение, а значение считывается в Java скрипте. Помогите плз.... | |
|
|
|
|
|
|
|
для: XPraptor
(30.12.2004 в 13:36)
| |
<table><tr>
<? echo "<td align=left><b>SELECT 1<br>
<select onchange=\"top.location.href = this.options[this.selectedIndex].value;\">
<option VALUE=\"your_file.php?\">ALL</option>";
$query3 = "SELECT .... your query for fisrt select";
$result3 = mysql_query($query3);
$number3 = mysql_num_rows($result3);
$j = 0;
WHILE ($j < $number3)
{
$name3 = mysql_result($result3,$j,"param");
echo "<option VALUE=\"$thisfile?param=$name3\"";
if ($name3 == $param) echo "Selected ";
echo " >$name3</option>";
$j++;
}
echo " </select></b></td><td align=left> ";
if (isSet($param))
echo "<b>SELECT 2<br>
<select onchange=\"top.location.href = this.options[this.selectedIndex].value;\">
<option VALUE=\"$thisfile?param=$param\">ALL</option>";
$query2 = "SELECT .... your query for second select ... WHERE param='$param' ";
$result2 = mysql_query($query2);
$number2 = mysql_num_rows($result2);
$j = 0;
WHILE ($j < $number2)
{
$name2 = mysql_result($result2,$j,"param2");
echo "<option VALUE=\"$thisfile?param=$param¶m2=$param2\"";
if ($name2 == $param2) echo "Selected ";
echo " >$name2</option>";
$j++;
}
echo "</select>";
?>
</td></tr></table>
|
| |
|
|
|
|
|
|
|
для: elenaki
(30.12.2004 в 14:01)
| | elenaki, не, перегрузить страницу с параметром это не то. Я с таким же успехом могу запостить нужный параметр в java скрипте. Тут весь смысл именно не перегружать страницу, потому как юзер уже ввел кучу значений и при перезагрузке их придется опять считывать и присваивать снова полям. такой вариант я оставил как крайний, если другого решения не найду.
[поправлено модератором] | |
|
|
|
|
|
|
|
для: XPraptor
(30.12.2004 в 14:05)
| | а как РHР узнает о том, какой параметр выбран в списке? это только java-script знает | |
|
|
|
|
|
|
|
для: elenaki
(30.12.2004 в 14:13)
| | Так и вопрос о том как из скрипта передать в PHP | |
|
|
|
|
|
|
|
для: XPraptor
(30.12.2004 в 14:43)
| | только перезагрузкой. можно предлагать выбор из списков ДО заполнения каких-либо других
полей, можно запоминать данные, внесенные в поля ДО выбора из списков. но без перезгрузки
я не вижу способа передачи параметров. найдете - дам медаль :) | |
|
|
|
|
|
|
|
для: elenaki
(30.12.2004 в 15:08)
| | Скорее всего в PHP действительно никак. Я легко на JavaScript, VBScript сделаю без всяких перезагрузок, а вот в PHP функцию пожалуй не передать никак.
Ладно, сенкс за внимание к проблемме, придется постить уже введенные данные при выборе в списке другого параметра. | |
|
|
|
|
|
|
|
для: XPraptor
(30.12.2004 в 14:43)
| | Без обращения к серверу, а следовательно без перезагрузки страницы – никак. Потому что PHP работает только на сервере и чтобы ему что-то "сказать" – нужно послать запрос на сервер.
Но иногда можно придумать обходные маневры. Например сделать фреймовую структуру сайта. Один фрейм (назовем его "передатчиком") будет постоянно общаться с сервером. Отображать он ничего не будет и поэтому обмен данными будет происходить относительно быстро.
А общение между фреймами ("передатчиком" и основными) будет осуществляться через JavaScript. Т.е. основная часть страницы перегружаться не будет. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(30.12.2004 в 23:34)
| | Дизайнер спасибо. Я уже как раз сам дотумкал до такого варианта, но ты более подробно рассказал что фрейм не должен ничего отображать, а просто гонять данные к серверу за ответом.
Сенкс, тему можно закрывать. | |
|
|
|