Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: многоуровневый массив, двойной селект

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: добавить в массив ключевые слова
imediasun
Отправлено: 24 Декабря, 2012 - 21:24:35
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 605
Дата рег-ции: Авг. 2012  


Помог: 2 раз(а)

[+][+][+][+][+]


Есть такой скрипт, который выводит из многоуровневого массива категории и в зависимости от выбранной в селекте категории выводит подкатегорию.
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. require_once('blocks/services_array.php'); // подключаем список с городами
  4.  
  5. $action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
  6.  
  7. // возвращаем список городов
  8. if ($action == 'getCity')
  9. {
  10.     if (isset($city[$_GET['region']]))
  11.     {
  12.         echo json_encode($city[$_GET['region']]); // возвраащем данные в JSON формате;
  13.     }
  14.     else
  15.     {
  16.         echo json_encode(array('Выберите область'));
  17.     }
  18.  
  19.     exit;
  20. }
  21.  
  22. // выводим пришедшие данные
  23. if ($action == 'postResult')
  24. {
  25.     echo '<pre>' . htmlspecialchars(print_r($_POST, true)) . '</pre>';
  26.     exit;
  27. }
  28. ?>
  29. <!DOCTYPE html>
  30. <html>
  31. <head>
  32.     <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
  33. CODE (javascript):
    скопировать код в буфер обмена
    1.  
    2.     <script type="text/javascript">
    3.     // <![CDATA[
    4.         function loadCity(select)
    5.         {
    6.             var citySelect = $('select[name="city"]');
    7.             citySelect.attr('disabled', 'disabled'); // делаем список городов не активным
    8.            
    9.             // послыаем AJAX запрос, который вернёт список городов для выбранной области
    10.             $.getJSON('../services.php', {action:'getCity', region:select.value}, function(cityList){
    11.                
    12.                 citySelect.html(''); // очищаем список городов
    13.                
    14.                 // заполняем список городов новыми пришедшими данными
    15.                 $.each(cityList, function(i){
    16.                     citySelect.append('<option value="' + i + '">' + this + '</option>');
    17.                 });
    18.                
    19.                 citySelect.removeAttr('disabled'); // делаем список городов активным
    20.                
    21.             });
    22.         }
    23.     // ]]>
    24.     </script>
    25.  
  • </head>
  • <body>
  •     <form action="../block/services.php" method="post">
  •            <select name="region" onchange="loadCity(this)">
  •             <option></option>
  •            
  •             <?PHP
  •             // заполняем список областей
  •             foreach ($city as $region => $cityList)
  •             {
  •                 echo '<option value="' . $region . '">' . $region . '</option>' . "\n";
  •             }
  •             ?>
  •            
  •         </select>
  •            <select name="city" disabled="disabled">
  •             <option>Выберите область</option>
  •         </select>
  •        
  •         <input type="hidden" name="action" value="postResult" />
  •         <input type="submit" value="отправить" />
  •     </form>
  •  
  •  

  • сам же файл массива выглядит так (кратко)
    PHP:
    скопировать код в буфер обмена
    1.  
    2. $city = array (
    3.   'Бухгалтерсие услуги' => array (
    4.     0 => 'Аудиторские',
    5.     1 => 'Бухгалтерские услуги и сопровождение',
    6.         2 => 'Подготовка и сдача бухгалтерской отчетности',
    7.         3 => 'Постановка бухгалтерского учета',
    8.         4 => 'Скорая помощь для бухгалтера',
    9.     // ...
    10.   ),
    11.  

    как правильно добавить в массив еще один уровень а в скрипт еще инпуты соответствующие третьему уровню по одному на каждый

    (Отредактировано автором: 24 Декабря, 2012 - 21:27:48)

     
     Top
    DlTA
    Отправлено: 25 Декабря, 2012 - 01:07:06
    Post Id



    Постоянный участник


    Покинул форум
    Сообщений всего: 2952
    Дата рег-ции: Окт. 2010  


    Помог: 53 раз(а)




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

    (Отредактировано автором: 25 Декабря, 2012 - 01:07:58)

     
     Top
    imediasun
    Отправлено: 25 Декабря, 2012 - 10:36:14
    Post Id


    Частый посетитель


    Покинул форум
    Сообщений всего: 605
    Дата рег-ции: Авг. 2012  


    Помог: 2 раз(а)

    [+][+][+][+][+]


    Ума не приложу, если знаете как это переделать сообщите
     
     Top
    Страниц (1): [1]
    Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
    « Вопросы новичков »


    Все гости форума могут просматривать этот раздел.
    Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
    Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
     



    Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

     
    Powered by ExBB FM 1.0 RC1. InvisionExBB