|
|
|
|
|
для: dedev
(12.05.2007 в 19:03)
| | Сделал зависимые (вроде работает).
Подскажите, как сделать это же, только без перезагрузки страницы?
Ни как не выходит
<form name="form" method="get" action="">
<?
// Открыть базу данных
$db = sqlite_open("test.sdb");
// Определяем общее количество записей в таблице
$query = "SELECT * FROM kat;";
$result = sqlite_query($db, $query);
echo("<SELECT name='kat' size=1>");
// Выводим сообщения
while (@$arr = sqlite_fetch_array($result))
{
if($_GET['kat'] == $arr['kat_id']) $selected = "selected";
else $selected = "";
echo("<OPTION value='".$arr['kat_id']."'" .$selected.">".$arr['kat_name']."</OPTION>");
}
echo("</SELECT>");
if (isset($_GET['kat']))
{
$query = "SELECT DISTINCT naprav.naprav_id, naprav.naprav_name
FROM naprav, svod
WHERE svod.naprav_id = naprav.naprav_id
AND svod.kat_id = $_GET[kat]";
}
else{
// Определяем общее количество записей в таблице
$query = "SELECT DISTINCT naprav.naprav_id, naprav.naprav_name
FROM naprav, svod
WHERE svod.naprav_id = naprav.naprav_id
AND svod.kat_id = 100";
}
$result = sqlite_query($db, $query);
if(sqlite_num_rows($result) > 0)
{
echo("<SELECT name='naprav' size=1>");
// Выводим сообщения
while (@$arr = sqlite_fetch_array($result))
{
if($_GET['naprav'] == $arr['naprav.naprav_id']) $selected = "selected";
else $selected = "";
echo("<OPTION value='".$arr['naprav.naprav_id']."'" .$selected.">".$arr['naprav.naprav_name']."</OPTION>");
}
echo("</SELECT>");
}
?>
<input type="submit" name="goo" value="выполнить">
</form>
|
| |
|
|
|
|
|
|
|
для: dedev
(11.05.2007 в 18:42)
| | help! | |
|
|
|
|
|
|
|
для: dedev
(11.05.2007 в 18:42)
| | Пример выкладывал cheops
доработать под свои таблицы не получается, help!
знаю, где не получается, а все равно не получается
<?php
// Устанавливаем соединение с базой данных
$db = sqlite_open("test.sdb");
// Начало HTML-формы
echo "<form action='' method=post>";
// Формируем первый выпадающий список
$query = "SELECT * FROM kat
ORDER BY kat_name";
$cat = sqlite_query($db, $query);
if(!$cat) exit(sqlite_error());
// Если имеется хотя бы одна запись
// формируем выпадающий список
if(sqlite_num_rows($cat) > 0)
{
echo "<select name=id_catalog onchange='show(this.form.id_catalog)'>";
while($catalog = sqlite_fetch_array($cat))
{
if($_POST['id_catalog'] == $catalog['id_catalog']) $selected = "selected";
else $selected = "";
echo "<option value=$catalog[kat_id] $selected>$catalog[kat_name]</option>";
// Формируем массив первичных ключей каталогов
$array_catalog[] = $catalog['kat_id'];
}
echo "</select>";
}
// Формируем второй выпадающий список
$query = "SELECT * FROM kat";
$cat = sqlite_query($db, $query);
if(!$cat) exit(sqlite_error());
// Если имеется хотя бы одна запись
// формируем выпадающий список
if(sqlite_num_rows($cat) > 0)
{
while($catalog = sqlite_fetch_array($cat))
{
// Формируем скрытые списки
/////////////
$query = "SELECT * FROM naprav
WHERE naprav_id = $catalog[kat_id]";
$prd = sqlite_query($db, $query);
if(!$prd) exit(sqlite_error());
// Если в текущем каталоге имеется хотя бы
// одна товарная позиция формируем выпадающий список
if(sqlite_num_rows($prd) > 0)
{
echo "<select id=$catalog[kat_id] style=\"display:none\" name=product$catalog[kat_id]>";
while($product = sqlite_fetch_array($prd))
{
if($_POST['naprav_id'] == $product['naprav_id']) $selected = "selected";
else $selected = "";
echo "<option value=$product[naprav_id] $selected>$product[naprav_name]</option>";
}
echo "</select>";
}
}
}
echo "</br><input type=submit name=send value=Отправить>";
// Конец HTML-формы
echo "</form>";
?>
<script language='JavaScript1.1' type='text/javascript'>
<!--
var messageIdList = new Array(<?= implode(",", $array_catalog) ?>);
function show(sel)
{
for (i = 0; i < messageIdList.length; i++)
{
document.getElementById(messageIdList[i]).style.display = "none";
}
document.getElementById(sel.options[sel.selectedIndex].value).style.display = "block";
}
//-->
</script>
|
| |
|
|
|
|
|
|
|
для: Trianon
(11.05.2007 в 19:50)
| | Хотелось бы без перезагрузки страницы, средствами PHP+JavaScript
Как я уже писал, пересмотрел, наверное, большую часть примеров на форуме, а прикрутить к своей ситуации ни как, Видимо где-то, что-то упустил, :( | |
|
|
|
|
|
|
|
для: dedev
(11.05.2007 в 19:43)
| | Сделать списки зависимыми несложно, если Вы готовы терпеть отправку формы перед выводом второго из списков. Или хотя бы повторный запрос к серверу. | |
|
|
|
|
|
|
|
для: Trianon
(11.05.2007 в 19:18)
| | Таблицы kat и naprav -- большими не будут максимум 200 – 300 записей
Таблица svod на сегодняшний день 20000 записей в перспективе 300000 – 500000 | |
|
|
|
|
|
|
|
для: dedev
(11.05.2007 в 18:42)
| | таблицы насколько большие? | |
|
|
|
|
|
|
| CREATE TABLE [kat] (
[kat_id] INTEGER PRIMARY KEY NOT NULL,
[kat_name] VARCHAR(80) NULL
);
CREATE TABLE [naprav] (
[naprav_id] INTEGER PRIMARY KEY NOT NULL,
[naprav_name] VARCHAR(80) NULL
);
CREATE TABLE [svod] (
[svod_id] INTEGER PRIMARY KEY NOT NULL,
[kat_id] INTEGER NULL,
[naprav_id] INTEGER NULL,
);
Пожалуйста, помогите сделать зависимые выпадающие списки,
1. выпадающий список по табдице kat
2. зависимый выпадающий список по таблице naprav, но через таблицу svod
два отдельных выпадающих списка, что то типа того, а зависимые ну ни как не выходят
пожалуйся помогите
<?
// Открыть базу данных
$db = sqlite_open("test.sdb");
// Определяем общее количество записей в таблице
$query = "SELECT * FROM kat;";
$result = sqlite_query($db, $query);
echo("<SELECT size=1>");
// Выводим сообщения
while (@$arr = sqlite_fetch_array($result))
{
echo("<OPTION value=".$arr['kat_id']."'>".$arr['kat_name']."</OPTION>");
}
echo("</SELECT>");
// Определяем общее количество записей в таблице
$query = "SELECT DISTINCT naprav.naprav_id, naprav.naprav_name
FROM naprav, svod
WHERE svod.naprav_id = naprav.naprav_id
AND svod.kat_id = // в этом месте должны быть данные из первого списка, не выходит";
$result = sqlite_query($db, $query);
if(sqlite_num_rows($result) > 0)
{
echo("<SELECT size=1>");
// Выводим сообщения
while (@$arr = sqlite_fetch_array($result))
{
echo("<OPTION value=".$arr['naprav.naprav_id']."'>".$arr['naprav.naprav_name']."</OPTION>");
}
echo("</SELECT>");
}
?>
|
все примеры на форуме пересмотрел, перестроить под свои потребности не получается. | |
|
|
|
|