Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2011, 13:58   #1
pavelslap
Пользователь
 
Регистрация: 08.02.2009
Сообщений: 73
Радость Взаимосвязанные селекты

Здравствуйте.
Задача состоит в том, чтобы при выборе опшиона первого селекта, опшионы второго селекта появлялись именно из той категории, которую выбрал в первом селекте.

У меня получается так, что во втором списке выводится только одна подкатегория, а надо чтобы все выводились (относящеясе к данной категории)

Вот это файл с формой:
PHP код:
<?php include("lock.php"); ?>
<form action='handlers/handler3.php' method='post' style='margin-top:10px'>
    <table border='0' cellpadding='0' cellspacing='0' width='600'>
        <tr>
        <td width='200'>
            <b>Выберите возрастную группу:</b>
            <br>
            <select name='age_group' size='1' id='category'>
                <option value='0'>Возрастная группа</option>;
                <?php
                    $result 
mysql_query("SELECT name FROM ps_age_groups",$db);
                    
$myrow mysql_fetch_array($result); 
                    do
                    {
                        
$age_group $myrow['name'];
                        echo 
"<option value='$age_group'>$age_group</option>";
                    }
                    while(
$myrow mysql_fetch_array($result));
                
?>
            </select>
        </td>
        <td width='200'>
            <b>Выберите команду возрастной группы:</b>
            <br>
            <select name='team_id' size='1' id='sub-category'>
                <option value='0'>Команда</option>;
            </select>
        </td>
        <td width='200'>
            <b>Имя и фамилия нового игрока:</b>
            <input type='text' name='name_surname' style='width:200px'>
        </td>
        </tr>
        <tr>
        <td colspan='3'>
            <input type='checkbox' name='active' style='margin-top:10px;'>Активный игрок
            <div align='right'><input type='submit' name='submit' value='OK'></div>
        </td>
        </tr>
    </table>
</form>
<script type="text/javascript">
    $("#category").change(function(){
        $("#sub-category").load("./handler.php", { id: $("#category option:selected").val() });
    });
</script>
А вот это обработчик:
PHP код:
<?php
    
if ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'){
        
$subcategory = array();
        
$subcategory[0][] = 'Команда';
         
        include 
"../blocks/bd.php";
        
$result mysql_query("SELECT name FROM ps_age_groups",$db);
        
$myrow mysql_fetch_array($result); 
        do
        {
            
$age_group $myrow['name'];
            
$result2 mysql_query("SELECT id FROM ps_teams WHERE age_group='$age_group'",$db);
            
$myrow2 mysql_fetch_array($result2); 
            
$team $myrow2['id'];
            
$subcategory[$age_group][] = $team;
          }
        while(
$myrow mysql_fetch_array($result));
         
        if (
is_array ($subcategory[$_REQUEST['id']])){ 
            foreach (
$subcategory[$_REQUEST['id']] as $id => $value){ 
                
                
$result3 mysql_query("SELECT name FROM ps_teams WHERE id='$value'",$db);
                
$myrow3 mysql_fetch_array($result3);  
                
$output $myrow3['name'];
                echo 
'<option value="' $value '">' $output '</option>'
            }   
        }
    } 
    else exit;
?>
pavelslap вне форума Ответить с цитированием
Старый 21.05.2011, 16:08   #2
freeeeez
Пользователь
 
Регистрация: 20.12.2010
Сообщений: 55
По умолчанию

вот здесь все подробно описано, с примерами и комментариями
http://xandeadx.ru/blog/javascript/36
freeeeez вне форума Ответить с цитированием
Старый 22.05.2011, 00:25   #3
pavelslap
Пользователь
 
Регистрация: 08.02.2009
Сообщений: 73
Радость

Видите ли, в примере задаётся массив с названиями вручную.
PHP код:
$city = array (
  
'Москва и Московская обл.' => array (
    
=> 'Москва',
    
=> 'Абрамцево',
    
// ...
  
), 
А мне надо получить их из базы. Извините за беспокойство.
pavelslap вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц