Codeigniter set_select - PullRequest
       13

Codeigniter set_select

0 голосов
/ 23 декабря 2010

Извинения Я не могу опубликовать какой-либо код в данный момент, потому что я не на своем рабочем месте, но я постараюсь объяснить свою проблему как можно яснее в надежде, что кто-то может помочь!

У меня естьдлинная форма, которая подчиняется методу в контроллере.Чтобы сделать вещи более удобными для пользователя, я разделил форму на разделы.У каждого раздела есть скрытое поле, которое действует как флаг.Метод, которому отправляет форма, состоит из условий, которые проверяют эти флаги.Если флаг найден, то можно отобразить следующую часть формы.Я также могу собирать данные по разделам, а не обрабатывать всю партию за один раз.

Моя проблема возникает, когда я пытаюсь использовать метод set_select, чтобы установить значение по умолчанию для меню выбора.Метод является частью библиотеки CI system form_validation.Если необязательный третий параметр передается методу как true, он должен установить это значение по умолчанию.Однако это работает только в том случае, если form_validation ранее не запускался.Это имеет смысл, поскольку предполагается, что значение по умолчанию потребуется только при первом обращении к форме, т.е.перед любым представлением и, следовательно, перед любыми данными поста.

Конечно, это не так, как в моей ситуации.Если бы я просто очистил массив post, то это лишило бы смысла функцию set_select, потому что любые меню выбора, расположенные выше формы, больше не могли бы быть установлены в их последнее значение.

Кто-нибудь может придумать хорошее решение?Я знаю, что с AJAX это будет намного проще, но я хочу убедиться, что каждый получит наилучший опыт независимо от того, решат они использовать JavaScript или нет.

Ответы [ 3 ]

0 голосов
/ 30 декабря 2010

как насчет этого:

  • разделить его на 3 разные формы в 3 разных методах
  • для каждого метода, установите переключатель, используя сессию, чтобы проверить, какая форма в настоящее время
  • добавить подтверждение формы в каждую из этих форм и проверить соответственно
  • если эти 3 формы OK, то вы можете перейти к любому процессу, который вы хотите
  • если какая-либо форма не удалась, вы загружаете обратно ранее неудачную форму
0 голосов
/ 05 января 2011

Я решил, что использование set_select, вероятно, не лучший вариант для меня, поэтому я добавил некоторый код в мои файлы представлений, которые будут делать это для каждого отдельного случая, а не пытаться использовать универсальную функцию. Не идеально, но работает!

0 голосов
/ 29 декабря 2010

Лично я бы использовал AJAX, чтобы разбить форму на 3 раздела, каждый раз отправляя AJAX.

THEN для пользователей, не поддерживающих JavaScript (их немного), я просто отображал формув целом, и обрабатывают нормально.

разбиение формы звучит как «особенность», а не функция.Это означает, что пользователи javascript смогут воспользоваться «функцией» разбиения формы, в то время как пользователи, не являющиеся javascript, все еще смогут легко выполнить «функцию» предоставления информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...