На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Дополнения к правилам (только для данного раздела)
- Используйте подсветку синтаксиса при выделении исходного кода;
- В описании темы обязательно укажите язык программирования;
- Прежде чем задать вопрос, обязательно воспользуйтесь поиском и загляните в FAQ раздела.
- Если вопрос касается серверного ПО, указывайте ОС.
- Если вопрос касается ASP.NET то лучше будет задать его в соответствующем разделе. Там вы сможете получить ответ намного быстрее.

Модераторы: Serafim, fatalist
  
> Передача многомерного массива методом (POST, GET) . , PHP. Может это кому нибудь пригодится? (не смог, не поделица..)
    Здрасте!
    ExpandedWrap disabled
      <?php
      $arr=array("hello","world");
      ?>
      <input name="var_name[]" value="<?=$arr[0]?>">
      <input name="var_name[]" value="<?=$arr[1]?>">

    Одномерный. А если -- многомерный?
    Отправляем "многомерный" массив:
    ExpandedWrap disabled
      <?php
       
      $ate = array ("good","bye");
       
      $te = array("hello","temp",$ate);
       
      $temp = serialize($te);
      ?>
       
      <input name="var_name" value="<?= $temp ?>" />

    Принимаем его:
    ExpandedWrap disabled
      <?php
      $tmp = $_REQUEST['var_name'];
       
      $var_css=unserialize($tmp);
       
      echo "<pre>";
      print_r ($var_css);
      echo "</pre>";
      ?>
    Сообщение отредактировано: uborshik -
      uborshik, ну совсем уж, извините, баян.
      Толку от такого не много, значение ни изменить ни получить на клиентской стороне.
        Цитата Pr0[)!9Y @
        Толку от такого не много, значение ни изменить ни получить на клиентской стороне.

        Ну там вроде как можно распарсить.. :)
        Но по поводу баяна согласен...
          Цитата Pr0[)!9Y @
          ну совсем уж, извините, баян.

          Мне щас нужно стало, в Гугле не смог найти - "как отправить многомерный массив из формы".

          Цитата Pr0[)!9Y @
          Толку от такого не много, значение ни изменить ни получить на клиентской стороне.

          Понятно. Просто я с Joomla, щас работаю: есть несколько компонентов, которые требуют для своего отображения, каждый свой стиль, при этом не нарушая общего стиля сайта.
          Для этого (я сделал так), эти компоненты регистрируют названия своих файлов *.CSS в глобальном массиве, который затем должен (методом Пост) отправляца на главную (шаблон) страницу, которая, затем, подключит нужные CSS -- файлы.

          Вообще-то, можно "тупо" прописать линки этих файлов (всех CSS - файлов имеющихся для сайта) в шаблоне, и "забыть" (гм, тогда к чему разговоры о "тормознутости" Джумлы, при таком подходе?).
          А можно подключать эти "линки" - динамически, по-мере необходимости. Т.е., просто, перебрать $GlobalCssPathArray= $_REQUEST['filepathcss'](unserialize($GlobalCssPathArray)), массив значений "линков", от всех подключаемых на данной странице компонентов и подключить необходимое.
          В этом массиве может быть всего один, нужный нам, "линк", а может быть и (до бесконечности?) несколько.
          С учетом, что Джумла при "дефолтных" настройках может подключить к абсолютно пустой странице сайта порядка 94 файлов, стоит задуматься об оптимизации?
          Сообщение отредактировано: uborshik -
            Цитата uborshik @
            "как отправить многомерный массив из формы".

            Так же как и одномерный.
            ExpandedWrap disabled
              <input name="var_name[0][0][2][2]" value="<?=$arr[0][0][2][2]?>">


            ExpandedWrap disabled
              function secret_func(Array $array, $name, $prefix = ''){
                  $ret = '';
                  foreach($array AS $key => $val){
                      if(is_array($val)) $ret .= secret_func($val,$name,$prefix."[{$key}]");
                      else $ret .= "<input type='hidden' name='{$name}{$prefix}[".htmlspecialchars($key)."]' value='".htmlspecialchars($val)."'/>\n";
                  }  
                  return $ret;
              }
               
               
              $var = array(array(234),'rtrt'=>array(array(3),array('e'=>'r')),'sd'=>34);
              echo secret_func($var,'varname');

            ExpandedWrap disabled
              <input type='hidden' name='varname[0][0]' value='234'/>
              <input type='hidden' name='varname[rtrt][0][0]' value='3'/>
              <input type='hidden' name='varname[rtrt][1][e]' value='r'/>
              <input type='hidden' name='varname[sd]' value='34'/>


            Добавлено
            Пустые только не умеет.
              Цитата Pr0[)!9Y @
              Так же как и одномерный.

              <input name="var_name[0][0][2][2]" value="<?=$arr[0][0][2][2]?>">

              Во! Видишь? А в FAQе -- нет такого на форуме. Там вообще эта тема не затронута.
              А напрасно -- пока сам искал, убедился, что многим тоже необходимо передавать многомерные массивы. И баян, не баян, а собственно, ответа типа этого я найти в инете не смог. Пока ты не показал.

              з.ы. Единственное, я "инпут" для наглядности привел, потому что в Joomla, в компонентах, в их логической части, нельзя (категорически) использовать HTML-теги. Для этого там есть объект (JRequest), который занимается передачей параметров. Поэтому твой метод, допустим, для моих целей не подойдет, но подойдет для других целей, которые, скорее всего, вскорости у меня появятся. И поэтому, не зря я эту "баянистую" тему написал, потому что теперь узнал, как передавать многомерный массив с помощью "инпутов".
              Сообщение отредактировано: uborshik -
                Цитата uborshik @
                А в FAQе -- нет такого на форуме.
                Потому что смысла нет - любой, кто знает, как отправить переменную, в первую очередь попробует сделать аналогично и с массивом.
                Вообще, конечно, непонятно, нафига таскать кучу данных в форме, если изменять их не предполагается.
                  Цитата SiMM @
                  Вообще, конечно, непонятно, нафига таскать кучу данных в форме, если изменять их не предполагается.

                  Посетитель жмет на ссылку, тем самым, вызывая на страницу, таблицу, которая включает в себя, различный контент, в каждой ее ячейке. Для каждой ячейки, жеско, прописан свой стиль (файл css) отображения.
                  Если администратор сайта захочет "не показывать" одну из ячеек таблицы посетителю, то и стиль данной ячейки подключать незачем.
                  Т.к. все стили регистрируются в массиве, то это очень легко передать шаблону, который будет знать, какие файлы стилей ему подключать, а какие -- нет.
                  (еще раз повторюсь, можно сразу "полинковать" к шаблону все файлы КСС сайта, но это весит очень дорого, для "быстродейсвия").
                  Сообщение отредактировано: uborshik -
                    Что это было? Ответ на вопрос "нафига таскать кучу хлама?" Сессии не устраивают из религиозных соображений?
                      Цитата SiMM @
                      Что это было? Ответ на вопрос "нафига таскать кучу хлама?" Сессии не устраивают из религиозных соображений?

                      Я может не в тему влезаю, но иногда сессии реально не устраивают... и как ни странно религия ни при чем :)
                      Бывает ситуация, когда пишешь мастера, на каком-нибудь из шагов которого возможно зависнуть на некоторое время, вплоть до 1/2 дня и более... при окончании сессии выходит неприятно... Хотя это наверное от неумения ими пользоваться... Однако при отсутствии времени и необходимости срочно слепить что-то подобное на ум первыми приходят формы :rolleyes:

                      Ногами не бить :)
                        Цитата fatalist @
                        иногда сессии реально не устраивают
                        Иногда - ключевое слово. Не тот случай, ИМХО, хотя, возможно, и не прав - слишком много не имеющей отношения к делу воды - подозреваю, что тут и сессии-то не факт, что нужны.
                          Цитата SiMM @
                          Иногда - ключевое слово. Не тот случай, ИМХО, хотя, возможно, и не прав - слишком много не имеющей отношения к делу воды - подозреваю, что тут и сессии-то не факт, что нужны.

                          Воды в моем посте? Ее количество обусловлено желанием смягчить ощущения от моей безграмотности :D
                            Цитата fatalist @
                            Воды в моем посте?
                            В последнем посте топикстартера.
                              Цитата SiMM @
                              В последнем посте топикстартера.

                              А, я с первого раза не очень вчитался...
                              Что-то у меня возникло ощущение, что там что-то не так... Для каждой ячейки свой *.css :blink:
                              Сообщение отредактировано: fatalist -
                              1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                              0 пользователей:


                              Рейтинг@Mail.ru
                              [ Script execution time: 0,0894 ]   [ 14 queries used ]   [ Generated: 18.07.25, 00:39 GMT ]