Флажок, который отправляет форму при клике - PullRequest
1 голос
/ 16 мая 2011

Я использую Codeigniter и хочу знать, как я могу сделать флажок, который отправляет форму при нажатии?

Во-вторых, этот флажок будет одним из нескольких флажков, которые будут действовать как фильтр, как продукты>20 долларов США, продукты <30 долларов США, как мне передать его в URL?Я думаю / 1 + 2 + 3 </p>

Ответы [ 3 ]

3 голосов
/ 16 мая 2011

Не много работал с Codeigniter, но я могу ответить на вопрос, как заставить форму отправляться при установке флажка с JS:

<form id="something">
    <input type="checkbox" name="foo" id="foo" value="yes" />
</form>

<script type="text/javascript">
$("#foo").click(function() {
    if ($(this).is(":checked"))
        $("#something").submit();
});
</script>
1 голос
/ 17 мая 2011

Javascript вопросы, похоже, уже решены; давайте перейдем к кодовым знакам.

Вы можете передать URL одним из этих двух способов.

  1. Идиоматический, но ограниченный : как / 1/2/3/4 / и т. Д. Функция контроллера, обрабатывающая этот URL-адрес, может либо использовать func_get_args для их чтения, либо, если вы уже знаете, сколько параметров будет передано не более, дать нулевое значение по умолчанию для всех ненужных параметров;

  2. Не Codeigniterish, но серьезно лучше для параметров поиска : включите строки запроса в вашем конфигурационном файле, передайте аргументы, как обычно с GET (min=2&max=3 и т. Д.) И получите их значение с входным классом CI ($min = $this->input->get('min')).

1 голос
/ 16 мая 2011

Это не имеет ничего общего ни с PHP, ни с CodeIgniter.Решение состоит в том, чтобы отправить форму в событии onclick элемента.

<input type="checkbox" name="filterx" onclick="document.forms[0].submit()" />

Вы можете использовать событие OnSubmit формы для удобного форматирования URL, если хотите.

ДляСделав это, вы можете

  • получить значения всех нужных элементов,
  • построить из него симпатичный URL,
  • установить URL с помощью location.href = yourniceurl,
  • отменить обычную отправку, вернув false.

Обратите внимание, что для обоих решений требуется включение javascript.Поэтому хорошо иметь другие способы отправки формы (кнопка «Отправить»).Не полагайтесь на отправку, нажав Enter.Opera будет использовать клавишу Enter для переключения флажка вместо отправки формы.При желании вы можете скрыть кнопку отправки с помощью Javascript, чтобы пользователи с Javascript автоматически отправляли свою форму, а пользователи без нее могли использовать кнопку.Вам нужно убедиться, что ваш валидатор форм на стороне сервера принимает не только симпатичный URL-адрес, но и уродливый URL-адрес (который отправляет такие значения, как ?filterx=on).

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