лучший способ создания всплывающих меню - PullRequest
2 голосов
/ 29 августа 2009

У меня есть страница планирования, которая отображает недельное (с воскресенья по субботу) расписание.

Я хочу добавить сотрудников в это расписание с помощью серии всплывающих меню, которые меняются в зависимости от выбранных значений.

Например, первое меню будет «Задания» со значениями <option>, переданными из таблицы заданий в моей базе данных.

Теперь, скажем, пользователь выбирает «Готовить» во всплывающем меню «Задания». В следующем меню «Сотрудники» будут показаны все сотрудники из таблицы сотрудников, для которых задан код работы «Повар». Таким образом, показывая мне всех поваров, которые будут доступны в этот день.

Каков наилучший способ создать серию таких меню?

Будем благодарны за любые ссылки на качественные учебники.

1 Ответ

1 голос
/ 29 августа 2009

Вы можете сделать это, используя Javascript / AJAX. Пользователь выбирает один вариант из первого меню, а следующее меню автоматически обновляет параметры с запросом к серверу, который отправляет параметр, выбранный в первом меню.

Это можно сделать следующим образом с помощью jQuery, который я настоятельно рекомендую избегать различных проблем с браузером. Это неполно, но должно дать вам большой старт:

HTML

<select id='jobs_menu' name='job'>
    <option>Cook</option>
    <option>Waiter</option>
</select>

<select id='employees_menu' name='employees'>
    <option>John Doe</option>
    <option>Doe John</option>
    <option>Everyone else</option>
</select>

Javascript / JQuery

$(document).ready(function(){

    $('#jobs_menu').change (function () {

        //ajax call
        $.get('http://yourscript.com/script.php', { job: $('#jobs_menu').val() },      
            function () {
                //parse the json and fill the #employees_menu with the results
            });
    });    
});

PHP

if (isset ($_GET['job']))
{
    $names  = array ();
    $job = mysql_real_escape_string ($_GET['job']);
    $res = mysql_query ("SELECT name FROM Employees WHERE job='$job'");

    while ($row = mysql_fetch_assoc ($res))
    {
        $names[] = $row['name']; 
    }

    echo json_encode ($names);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...