Casilla de verificación que envía el formulario al hacer clic

Estoy usando Codeigniter y quiero saber cómo puedo hacer una casilla de verificación que envíe el formulario al hacer clic.

En segundo lugar, esta casilla de verificación será una de varias casillas de verificación que actuarán como un filtro como productos> $ 20, productos <$ 30, ¿cómo lo paso en la URL? Estoy pensando / 1 + 2 + 3

preguntado el 16 de mayo de 11 a las 19:05

Esta es realmente una pregunta del lado del cliente (prob javascript) .. -

3 Respuestas

No he trabajado mucho con Codeigniter, pero puedo responder cómo hacer que el formulario se envíe marcando la casilla de verificación con 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>

contestado el 16 de mayo de 11 a las 23:05

Las preguntas de javascript parecen haber sido resueltas ya; pasemos a los de codeigniter.

Puede pasar la URL de una de estas dos formas.

  1. Idiomático pero limitado: como / 1/2/3/4 / etc. La función del controlador que maneja esa URL podría usar func_get_args para leerlos o, si ya sabe cuántos parámetros se pasarán como máximo, dé un valor predeterminado de nulo a todos los parámetros no necesarios;

  2. No Codeigniterish pero seriamente mejor para los parámetros de búsqueda: habilite las cadenas de consulta en su archivo de configuración, pase argumentos como lo haría normalmente con GET (min=2&max=3 y así sucesivamente) y obtenga su valor con la clase de entrada de CI ($min = $this->input->get('min')).

contestado el 17 de mayo de 11 a las 00:05

Esto no tiene nada que ver con PHP, ni CodeIgniter. La solución es enviar el formulario en el evento onclick del elemento.

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

Puede usar el evento OnSubmit del formulario para formatear bien la URL, si lo desea.

Para hacer esto, puedes

  • obtener los valores de todos los elementos deseados,
  • crear una URL agradable a partir de ella,
  • establecer la URL usando location.href = yourniceurl,
  • cancele el envío regular devolviendo falso.

Tenga en cuenta que ambas soluciones requieren que Javascript esté habilitado. Por lo tanto, es bueno tener otros medios para enviar el formulario (botón enviar). No confíe en enviar presionando Enter. Opera usará la tecla Enter para alternar la casilla de verificación en lugar de enviar el formulario. Si lo desea, puede ocultar el botón de envío usando Javascript, de esa manera, los usuarios que tengan Javascript tendrán su formulario enviado automáticamente, mientras que los usuarios que no lo tengan pueden usar el botón. Deberá asegurarse de que el validador de formularios del lado del servidor no solo acepte la URL agradable, sino también la URL fea (que publica valores como ?filterx=on) también.

contestado el 18 de mayo de 11 a las 10:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.