Google
Web dns.bdat.net

Re: [PHP-ES] Ayuda urgente con checkbox

Write haof XML files: Vladimir Hernández ( interco@linuxbaja.org)
Fecha: sáb 26 mar 2005 - 02:40:46 CET


On Fri, 25 Mar 2005 21:15:50 -0400, fglistas wrote
> Perdonen pero todavía falta algo...
> A ver si estoy entendiendo
> <form>
> ...
> Antetitulo de la nota: <input name="antetitulo" type="text"
> id="antetitulo" size="60">
> Titulo de la nota: <input name="titulo" type="text" id="titulo" size="60">
> Secciones a visualizar:
> <input type="checkbox" name="informatica" value="1" checked>
> <input type="checkbox" name="destaques" value="1" >
> <input type="checkbox" name="ciencia" value="1">
> ...
> </form>
>
> Archivo que introduzirá los datos en la tabla notas:
> ...
> include ("conexion.php");
> $sql = "INSERT INTO notas (antetitulo, titulo, informatica,
> destaques, ciencia) VALUES ('$antetitulo', '$titulo',
> '$informatica', '$destaques', '$ciencia')"; $sql = mysql_query($sql)
> or die ("Ocurrió un error al grabar los datos"); mysql_close(); ?>
> Y EN DONDE PONGO LA CONDICIÓN IF? Un abrazo Juan
>
> Vladimir Hernández escribió:
>
> >On Fri, 25 Mar 2005 20:39:29 -0400, fglistas wrote
> >
> >
> >>Hola
> >>¡Gracias por contestar!
> >>Si
> >>
> >><input type="checkbox" name="informatica" value="yes" checked>
> >> Affari &amp; finanza</option>
> >>el valor "INSERT INTO basededatos (informatica) VALUES
> >>('$informatica')";
> >>
> >>qué pasa cuando el checkbox no está checked por defecto ni el usuario
> >>cliquea el chechbox?
> >><input type="checkbox" name="destaques" value="yes">
> >> Affari &amp; finanza</option>
> >>
> >>Esa es mi duda. Insertar "yes" en las secciones que el usuario
> >>cliqueó y no en las que el no hizo nada.
> >>
> >>Un abrazo
> >>Juan
> >>
> >>Vladimir Hernández escribió:
> >>
> >>
> >>
> >>>On Fri, 25 Mar 2005 19:57:10 -0400, fglistas wrote
> >>>
> >>>
> >>>
> >>>
> >>>>Hola a todos
> >>>>Estoy intentando hacer un formulario para insertar texto en una
> >>>>tabla de una base de datos. La misma tabla tiene el nombre de las
> >>>>diferentes secciones de la pagina en donde el texto debe ser visible
> >>>>(por ejemplo: home, informática y ciencia). Me pareció que lo mejor
> >>>>sería hacer varios checkboxs porque con el list menu solo puedo
> >>>>seleccionar una opción. Mi problema es como hacer que se detecte si
> >>>>el checkbox está seleccionado o no y convertir a opción a "si" o
> >>>>"no" para poder pasar la variable e insertar en la base de datos.
> >>>>ESPERO QUE ME ESCRIBAN UN EJEMPO PARA PODER GUIARME lo demás, como
> >>>>es de esperar lo hago yo. Un abrazo Juan
> >>>>
> >>>>--
> >>>>PHP Spanish Localization Talk Mailing List (http://www.php.net/)
> >>>>To unsubscribe, visit: http://www.php.net/unsub.php
> >>>>
> >>>>
> >>>>
> >>>>
> >>>No comprendo la pregunta. Necesitas saber detectar en cuanto hacen click? eso
> >>>es con JavaScript. Necesitas saber si eligieron o no el mencionado checkbox?
> >>>debe cada checkbox tener un nombre diferente, y el valor de "value" del
tag de
> >>>checkbox te aparecerá como el contenido de una variable que se llamará
como el
> >>>checkbox.
> >>>
> >>>Como dije, no comprendo la pregunta.
> >>>--
> >>>Vladimir Hernández
> >>>Linux Baja California
> >>>Grupo de usuarios de GNU/Linux
> >>>http://linuxbaja.org
> >>>Linux registered user # 374079
> >>>counter.li.org
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >
> >OK, por partes... porqué el </option> si no tienes un <select> ?
> >
> >la forma para tener un valor por definición, en HTML. es:
> >
> ><input type="checkbox" name="informatica" value="1" checked>
> >
> >En PHP, recibes la variable como $informatica, y si el usuario no la
> >"deschecó" entonces:
> >
> >$informatica = 1.
> >
> >Y para tu consulta:
> >if($informatica==1){
> > $consulta_sql = "INSERT INTO informatica ... etc";
> > $accion_sql = mysql_query(...
> >}
> ># y si hay más de un checkbox...
> >if($computacion==1){
> > $consulta_sql = "INSERT INTO computacion ... etc";
> > $accion_sql = mysql_query(...
> >}
> >
> >Espero te sirva
> >
> >--
> >Vladimir Hernández
> >Linux Baja California
> >Grupo de usuarios de GNU/Linux
> >http://linuxbaja.org
> >Linux registered user # 374079
> >counter.li.org
> >
> >
> >

En el más puro espíritu de esta lista, cooperativo pero no paternalista, te
daré la idea. La solución final depende de ti. Explico:

1- La forma HTML te manda los datos. Tu forma está bien.
2- Los procesas dependiendo de los parámetros.
3- El IF selecciona cada caso dependiendo de qué eligió el usuario:
-------------------------
# DISCLAIMER: ésta es la solución menos elegante,
# pero te servirá para empezar:
if($informatica==1&&$destaques==1&&$ciencia==1){
   $sql = "INSERT INTO notas (antetitulo, titulo, informatica, destaques,
ciencia) VALUES ('$antetitulo', '$titulo', '$informatica', '$destaques',
$ciencia')";
}
elseif($informatica==1&&$destaques==1&&$ciencia!=1){
   $sql = "INSERT INTO notas (antetitulo, titulo, informatica, destaques)
VALUES ('$antetitulo', '$titulo', '$informatica', '$destaques')";
}
elseif(....
...
$sql = mysql_query($sql)
---------------------------
Esa es la idea. Seguro que puedes pensar una mejor forma de hacerlo. Para tres
variables con dos opciones cada una, necesitas 8 iteraciones.

Como dije, con ésto lo puedes hacer, sirve para empezar. Lo siquiente es
hacerlo más eficiente.

Saludos.

--
Vladimir Hernández
Linux Baja California
Grupo de usuarios de GNU/Linux
http://linuxbaja.org
Linux registered user # 374079
counter.li.org
-- 
PHP Spanish Localization Talk Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


Este archivo fue generado por hypermail 2.1.7 : sáb 18 mar 2006 - 18:24:09 CET