We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 43754
    • 19 Posts
    Как мне обработать в темплейте текстовые поля, которые были добавлены в форму динамически, ява скриптом? Тоесть у меня есть несколько инпутов, которые создаются на форме при клике на кнопку "Добавить поле". Поля имеют имена input_field_#, где # - это целое инкрементное число. Никак не могу разобраться..
      • 20380
      • 118 Posts
      Вообще, в таких случаях используют имена вида input_field[x], а потом можно будет их обрабатывать как массив. Если получится, то нужно будет только приписать сниппет для того, чтобы выводить содержимое этого массива, а не строку Array. Только не знаю, нужно ли для этого еще писать hooks или и так обойдется
        • 43754
        • 19 Posts
        Странно, вроде не редкая фича, которой пользуются.. Получается, просто снипету передать [[+input_field]], и вернуть поля, разобранные foreach'ем к примеру?
          • 20380
          • 118 Posts
          Странно, вроде не редкая фича, которой пользуются..
          Не настолько часто. К тому же, написать для этого сниппет тоже элементарно
          Получается, просто снипету передать [[+input_field]], и вернуть поля, разобранные foreach'ем к примеру?
          Можете попробовать вообще сперва print_r'ом (только не забудьте второй параметр, чтобы он возвращал значение, а не пытался его отобразить)
          т.е.
          return print_r($arr, 1);

          Если выведется, работайте дальше в сторону foreach'а
            • 43754
            • 19 Posts
            Спасибо, попробуем
              • 43754
              • 19 Posts
              Вот что имеем:
              В чанке с формой:
              <input type="text" name="o_year_first[]" value="2010"/>
              <input type="text" name="o_year_first[]" value="2011"/>

              Снипет простой, для теста(ParseInput):
              <?php
              return print_r($input,1);

              и чанк с темплейтом:
              [[!ParseInput?input=[[+o_year_first]]]]

              В итоге у меня выводится просто [[+o_year_first]] как текст.. Что не так? [ed. note: messenja last edited this post 13 years, 5 months ago.]
                • 43754
                • 19 Posts
                Кавычки забыл =)
                [[!ParseInput?input=`[[+o_year_first]]`]]
                  • 43754
                  • 19 Posts
                  Блин, если делать так:
                  foreach ($input as $key=>$value)
                  {
                       $result.="<td>".$value."</td>";
                  }

                  то выходит ошибка, что Invalid argument supplied for foreach() in ...
                  отдампил $input - там приходит просто строка со значениями, разделенными пробелами, типа "VALUE1 VALUE2 VALUE3"
                  ну ок, делаю
                  $tmp = $explode(" ",$input);

                  Так у меня в $tmp опять та же строка "VALUE1 VALUE2 VALUE3"! В чем дело?
                  Тоесть в $tmp(массив) у меня 1 элемент: [0]=>"VALUE1 VALUE2 VALUE3", получается explode не находит пробел. Я и chr(32) пробовал, ведь в UTF-8 и ISO пробел один и тот же код имеет. Помогите разобраться
                  [ed. note: messenja last edited this post 13 years, 5 months ago.]
                    • 42546
                    • 8 Posts
                    Почитайте http://ilyaut.ru/tips-and-tricks/process-form-fields-added-dynamically/ , может, что-то прояснится