За последние 24 часа нас посетили 17487 программистов и 1719 роботов. Сейчас ищут 1516 программистов ...

взаимосвязь между всплывающими списками!

Тема в разделе "PHP и базы данных", создана пользователем Natik, 6 май 2006.

  1. Natik

    Natik Активный пользователь

    С нами с:
    6 май 2006
    Сообщения:
    2
    Симпатии:
    0
    Привет ребята! :)
    Вот скажите, например у меня есть таблица студент, в которой существуют внешние ключи (Код_Вуз, Код_Факультет, Код_Кафедра, Код_Специальность и т.д.), ссылающие на стержневые сущности Вуз, Факультет, Кафедра и т.д., которые в свою очередь не связаны м/д собой.
    У меня стоит задача в том, чтобы при выборе из списка нужного факультета, получался список факультетов, которые относятся к этому вузу. И также с остальной информацией.
    Мне посоветовали использовать Java Script, но увы программировать с помощью этого языка я пока не умею, поэтому прошу помощи в таком нелёгком деле. :? Помогите чем можете.
    Заранее говорю спасибо!
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Тгда придется перегружать страницу при каждом выборе
     
  3. olo

    olo Активный пользователь

    С нами с:
    28 апр 2006
    Сообщения:
    272
    Симпатии:
    0
    В чем вопрос-то?
    Надо выбрать список из базы? Делай несколько запросов, или если хочеш поизвращаться, собери их в один.
    Надо менять содержимое списков без перезагрузки страницы? Сделай поиск по фразе "построение динамических списков", и обрати внимание на то, сколько инфы там рекоммендуют подгружать сразу. Ибо частое обращение на сервер есть плохо, но и большой вес страницы тоже есть плохо
     
  4. Natik

    Natik Активный пользователь

    С нами с:
    6 май 2006
    Сообщения:
    2
    Симпатии:
    0
    Вот смотрите!
    Я сделала в таблице факультет - внешний ключ id_Institution.
    Затем делаю запрос на выбор вуза из таблицы Вузы. После этого делаю запрос на выбор факультета из таблицы факультет. Например,
    <?php
    if ($id_Institution)
    {
    $sql = "select id_Faculty,
    AbroviationF,
    NameF
    FROM Faculty
    WHERE id_Institution = $id_Institution"; // Выбор данных из таблицы Faculty для формирования выпадающего списка
    $NameF=mysql_query($sql, $db);

    // Формирование выпадающего списка видов факультетов:
    $myrow = mysql_fetch_array($NameF);
    printf("<option value=\"%s\" selected>%s</option>\n",
    $myrow["id_Faculty"],
    $myrow["NameF"]);
    while ($myrow = mysql_fetch_array($NameF))
    {
    printf("<option value=\"%s\">%s</option>\n",
    $myrow["id_Faculty"],
    $myrow["NameF"]);
    }
    }
    ?>
    Если создать 2 файла и проверить работу запросов и формы, то в итоге получаем, что на одной страничке мы выбираем вуз, нажимаем на кнопку и получаем следующую страничку где выпадает список факультетов. которые соответствуют этому вузу.
    Но как мне сделать так, чтобы это работало на одной страничке, при этом данные сохранялись на форме, а не обнулялись.
     
  5. olo

    olo Активный пользователь

    С нами с:
    28 апр 2006
    Сообщения:
    272
    Симпатии:
    0
    Гы, осваивай яваскрипт. Ибо в твоем случае без него никак.
    На выбор в первом списке вешаеш яваскрипт-обработчик, он делает запрос, по запросу ты РНР генериш элементы второго списка, отправляеш обратно, а дальше яваскриптом эти элементы кидаеш во второй список. Чета на ум никакого готового решения не приходит чтобы проиллюстрировать. Но по крайней мере весь яваскрипт ты можеш выдрать с любого сайта, где есть такие списки. Я их видел почти у всех производителей комплектующих для компов: креатив, асус, нек, ...
     
  6. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    olo

    варианта ровно 3

    1. делать <select> с OnClick и перегрузом страницы
    2. генерировать java-скрипт и данные для него сразу и по изменению <select> подсовывать нужные
    3. ajax c динамической подгрузкой данных

    p.s. расположены по мере трудности исполнения ...