Foros del Web » Programando para Internet » PHP »

Recoger Una Variable De Un Check Box

Estas en el tema de Recoger Una Variable De Un Check Box en el foro de PHP en Foros del Web. Hola .. buenos dias. Soy nuevo en esto y estoy realizando un formulario que recoge varias variabels, entre ellas deberia verificar si esta checkeado un ...

  #1 (permalink)  
Antiguo 02/03/2007, 03:05
 
Fecha de Ingreso: marzo-2007
Mensajes: 23
Antigüedad: 17 años, 1 mes
Puntos: 0
Recoger Una Variable De Un Check Box

Hola .. buenos dias. Soy nuevo en esto y estoy realizando un formulario que recoge varias variabels, entre ellas deberia verificar si esta checkeado un check box o no ( $checked ) y mandarmelo a un bbdd que tengo ya creada y con su campo ( usu_checked ), pero se recoger todas menos esta y me estoy ahogando en un vaso de agua. Algún salvavidas por ahí?

este es un poco el codigo que estoy poniendo:

este es de las variable:
mysql_query("INSERT INTO usuarios values('','$yourname','$mumsname', '$yourmessage', '$poblacion', '$provincia', '$codigo', '$youremail', '$candidatephone', '$yourphone', '$checked' ) ");

y este en el check box:
<tr>

<td bgcolor="#FFFFFF" style="padding:10px;"><input name="checkbox" type="checkbox" value="<?=$checked;?> checked="checked" /></td>

<td class="style15" style="padding:10px;">Quiero recibir informaci&oacute;n de AireLibre </td>
</tr>


Me imagino que deberia de poner en algún lado un fi que comprobara si este CHECKED o NO, pero no sé, he ahí mi dilema,

Un saludo y graciassss
  #2 (permalink)  
Antiguo 02/03/2007, 03:22
 
Fecha de Ingreso: enero-2006
Ubicación: Madrid
Mensajes: 74
Antigüedad: 18 años, 2 meses
Puntos: 2
Re: Recoger Una Variable De Un Check Box

Pues creo que sí podría ser con un if tal como dices, algo como:

if($_POST['checkbox'] == "checked") {

mysql_query("INSERT INTO usuarios ... (la sentencia que uses)

}

También parece que hay un error con las comillas aquí:

<input name="checkbox" type="checkbox"
value="<?=$checked;?> checked="checked" />

¿no?
  #3 (permalink)  
Antiguo 02/03/2007, 03:45
 
Fecha de Ingreso: marzo-2007
Mensajes: 23
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Recoger Una Variable De Un Check Box

es que si fuera recoger un campo escrito lo hago así:

<input class="style12" name="yourname" type="text" value="<?=stripslashes(htmlspecialchars($yourname) );?>" size="20" />

pero no se como hacerlo con el check, no se si debería ser de la primera forma o la segunda, aqui las dejo:

<input name="checkbox" type="checkbox" value="checkbox" checked="checked" />

<input name="checkbox" type="checkbox" value="<?=$checked;?> checked="checked" />
  #4 (permalink)  
Antiguo 02/03/2007, 03:50
 
Fecha de Ingreso: marzo-2007
Mensajes: 23
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Recoger Una Variable De Un Check Box

vamos lo que quiero decir que no se tampoco muy bien desarrollar esto ...

mysql_query("INSERT INTO usuarios ... (la sentencia que uses)

ya que no uso nada parecido, podrías completarme el codigo por favor?

Graciassss
  #5 (permalink)  
Antiguo 02/03/2007, 04:23
 
Fecha de Ingreso: enero-2006
Ubicación: Madrid
Mensajes: 74
Antigüedad: 18 años, 2 meses
Puntos: 2
Re: Recoger Una Variable De Un Check Box

Hola de nuevo.
En el formulario, lo más sencillo sería algo así:

<input name="checkbox" type="checkbox" value="marcado" checked="checked" />

Y el if y la sentencia de base de datos podrían quedar algo así (asumo que tu formalario se envía mediante POST):

if($_POST['checkbox'] == "marcado") {

mysql_query("INSERT INTO usuarios (usu_checked) values ('$checkbox')";

}

En principio esto lo que haría sería que si tu usuario ha marcado esa casilla de validación, en el campo usu_checked de la base de datos añadirá "marcado", y si no, no añadirá nada... creo :O)
Ya me cuentas. Un saludo,
  #6 (permalink)  
Antiguo 02/03/2007, 04:48
 
Fecha de Ingreso: marzo-2007
Mensajes: 23
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Recoger Una Variable De Un Check Box

buenas de nuevo, antes me equivoque .. si es que ya ni leo ... claro que hago un INSERT:

mysql_query("INSERT INTO usuarios values('','$yourname','$mumsname', '$yourmessage', '$poblacion', '$provincia', '$codigo', '$youremail', '$sexo', '$candidatephone', '$yourphone', '$checked' ) ");

y los if de las demás lo pruebo así:

if(theform.candidatephone.value=="") {

error+="No ha introducido un número de teléfono\n";

}
  #7 (permalink)  
Antiguo 02/03/2007, 04:57
 
Fecha de Ingreso: enero-2006
Ubicación: Madrid
Mensajes: 74
Antigüedad: 18 años, 2 meses
Puntos: 2
Re: Recoger Una Variable De Un Check Box

Si ese código funciona, quítale a la sentencia el valor $checked y mételo después dentro del if tal como te comentaba... debería funcionar. Algo así:

mysql_query("INSERT INTO usuarios values('','$yourname','$mumsname', '$yourmessage', '$poblacion', '$provincia', '$codigo', '$youremail', '$candidatephone', '$yourphone' ) ");

if($_POST['checkbox'] == "marcado") {

mysql_query("INSERT INTO usuarios (usu_checked) values ('$checkbox')";

}
  #8 (permalink)  
Antiguo 02/03/2007, 05:21
 
Fecha de Ingreso: marzo-2007
Mensajes: 23
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Recoger Una Variable De Un Check Box

hola, pues ya lo he probado y me da este error:
Parse error: parse error, unexpected ';' in /home/chs/juandelamata.com/home/html/webmaster/phMailer.php on line 522

Puedes ver el ejemplo en la url indicada
juandelamata.com/webmaster/phMailer.php




No se porque pero no soy capaz de solucionarlo.
sin poner el if y con el checkbox activado la bbdd recibe valor 0.
Al menos creo que recibe.
  #9 (permalink)  
Antiguo 02/03/2007, 05:31
 
Fecha de Ingreso: enero-2006
Ubicación: Madrid
Mensajes: 74
Antigüedad: 18 años, 2 meses
Puntos: 2
Re: Recoger Una Variable De Un Check Box

puedes copiar la línea 552????
  #10 (permalink)  
Antiguo 02/03/2007, 05:32
 
Fecha de Ingreso: marzo-2007
Mensajes: 23
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Recoger Una Variable De Un Check Box

en mi POST tegno declarado todo así:

If($_POST['submit']==true) {
extract($_POST, EXTR_SKIP);



// Check the form for errors



If(trim($yourname)=="") {

$error.="You did not enter your name!<br />";

}
  #11 (permalink)  
Antiguo 02/03/2007, 05:37
 
Fecha de Ingreso: marzo-2007
Mensajes: 23
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Recoger Una Variable De Un Check Box

en mi POST tegno declarado todo así:

If($_POST['submit']==true) {

extract($_POST, EXTR_SKIP);
// Check the form for errors
If(trim($yourname)=="") {
$error.="You did not enter your name!<br />";
}
If(trim($poblacion)=="") {
$error.="You did not enter an address!<br />";
}
If($error) {
$display_message=$error;
} Else {
$con = mysql_connect('mysql5.gestionar.info', 'ab4844', 'trabajo'); //aqui en debes meter servidor de base de datos, usuario y contraseña
$res=mysql_select_db("ac0738",$con); //el nombre de la base de datos debe ser "phmailer" si es otro cambiar.
mysql_query("INSERT INTO usuarios values('','$yourname','$mumsname', '$yourmessage', '$poblacion', '$provincia', '$codigo', '$youremail', '$sexo', '$candidatephone', '$yourphone', '$checked') ");
echo mysql_error();
mysql_close($con);
echo $thanksmessage;
} // Else

} // $_POST

Lo único que se me ocurre es meter otro if aquí:
If(trim($checked)=="") {
$error.="No has seleccionado nada<br />";

}

y luego incluir $checked junto con todas las demás.
  #12 (permalink)  
Antiguo 02/03/2007, 05:40
 
Fecha de Ingreso: marzo-2007
Mensajes: 23
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Recoger Una Variable De Un Check Box

Perdona tío, la líne
a de codigo es esta:

521: mysql_query("INSERT INTO usuarios (usu_checked) values ('$checkbox')";
  #13 (permalink)  
Antiguo 02/03/2007, 05:50
 
Fecha de Ingreso: enero-2006
Ubicación: Madrid
Mensajes: 74
Antigüedad: 18 años, 2 meses
Puntos: 2
Re: Recoger Una Variable De Un Check Box

Ahá, ha sido una errata mía, falta un paréntesis. Debería ser:

mysql_query("INSERT INTO usuarios (usu_checked) values ('$checkbox')");
  #14 (permalink)  
Antiguo 02/03/2007, 06:01
 
Fecha de Ingreso: enero-2006
Ubicación: Madrid
Mensajes: 74
Antigüedad: 18 años, 2 meses
Puntos: 2
Re: Recoger Una Variable De Un Check Box

Cita:
Iniciado por kreata Ver Mensaje
en mi POST tegno declarado todo así:

Lo único que se me ocurre es meter otro if aquí:
If(trim($checked)=="") {
$error.="No has seleccionado nada<br />";

}

y luego incluir $checked junto con todas las demás.
Hola: ese código no afecta a la inclusión del registro en la bd. Eso lo que hace es "validar", cuando el usuario pulsa el "Enviar", que en ese campo haya "algo"... y creo que no es eso lo que quieres: eso lo que haría es que, si el usuario no marca la casilla de validación, no le dejará enviar el formulario... ¿es ésa tu intención?
  #15 (permalink)  
Antiguo 02/03/2007, 06:31
 
Fecha de Ingreso: marzo-2007
Mensajes: 23
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Recoger Una Variable De Un Check Box

si, al poner el parentesis ya no me da el error y me sale la alert correctamente, el caso es que ahora en la BBDD me deja relleno todos los campos como NULL, xq?
  #16 (permalink)  
Antiguo 02/03/2007, 06:37
 
Fecha de Ingreso: enero-2006
Ubicación: Madrid
Mensajes: 74
Antigüedad: 18 años, 2 meses
Puntos: 2
Re: Recoger Una Variable De Un Check Box

mmm... ¿cambiaste también el código en el formulario por éste???

<input name="checkbox" type="checkbox" value="marcado" checked="checked" />
  #17 (permalink)  
Antiguo 02/03/2007, 06:44
 
Fecha de Ingreso: marzo-2007
Mensajes: 23
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Recoger Una Variable De Un Check Box

Bueno lo priemro pediret disculpas porque el campo usu_checked estaba comop INT y asi no recogia nunca "marcado", ahora me muestra marcado si lo está pero el resto de campos me pone NULL y sin embargo si quito el if y lo dejo como estaba pues si me muestra los datos pero me saca en usu_checked valor 0.

Muchas graciassss y perdona
  #18 (permalink)  
Antiguo 02/03/2007, 06:45
 
Fecha de Ingreso: marzo-2007
Mensajes: 23
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Recoger Una Variable De Un Check Box

si si eso lo he cambiado.
  #19 (permalink)  
Antiguo 02/03/2007, 06:47
 
Fecha de Ingreso: marzo-2007
Mensajes: 23
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Recoger Una Variable De Un Check Box

el fallo debería estar aquí, pero no lo veo:

If($error) {



$display_message=$error;



} Else {



$con = mysql_connect('mysql5.gestionar.info', 'ab4844', 'trabajo'); //aqui en debes meter servidor de base de datos, usuario y contraseña

$res=mysql_select_db("ac0738",$con); //el nombre de la base de datos debe ser "phmailer" si es otro cambiar.

mysql_query("INSERT INTO usuarios values('','$yourname','$mumsname', '$yourmessage', '$poblacion', '$provincia', '$codigo', '$youremail', '$sexo', '$candidatephone', '$yourphone') ");
if($_POST['checkbox'] == "marcado") {

mysql_query("INSERT INTO usuarios (usu_checked) values ('$checkbox')");


}


echo mysql_error();

mysql_close($con);

echo $thanksmessage;



} // Else



} // $_POST
  #20 (permalink)  
Antiguo 02/03/2007, 06:49
 
Fecha de Ingreso: enero-2006
Ubicación: Madrid
Mensajes: 74
Antigüedad: 18 años, 2 meses
Puntos: 2
Re: Recoger Una Variable De Un Check Box

mmm... si lo que quieres es que además, si no está marcado, en el campo usu_checked te escriba "no marcado", por ejemplo, puede hacerse así:

f($_POST['checkbox'] == "marcado") {

(lo de antes)

}

else {

mysql_query("INSERT INTO usuarios (usu_checked) values ('no marcado')");

}

a ver qué tal :O)
  #21 (permalink)  
Antiguo 02/03/2007, 06:52
 
Fecha de Ingreso: enero-2006
Ubicación: Madrid
Mensajes: 74
Antigüedad: 18 años, 2 meses
Puntos: 2
Re: Recoger Una Variable De Un Check Box

perdón, lo he editado, había una errata :O)
  #22 (permalink)  
Antiguo 02/03/2007, 06:56
 
Fecha de Ingreso: enero-2006
Ubicación: Madrid
Mensajes: 74
Antigüedad: 18 años, 2 meses
Puntos: 2
Re: Recoger Una Variable De Un Check Box

Cita:
Iniciado por kreata Ver Mensaje
el fallo debería estar aquí, pero no lo veo:

If($error) {

Ese primer if no influye... lo que hace es indicarle al sistema que compruebe el formulario (si hay campos vacíos, me figuro), y, en el caso de haberlos, que muestre los mensajes de error.
En el caso de no haber errores de validación, es cuando pasa a meter el registro en la bd.

Prueba con ese "else" que te comento a ver si conseguimos que funcione :O), de momento ya nos ingresa ese "marcado" ;O)
  #23 (permalink)  
Antiguo 02/03/2007, 07:10
 
Fecha de Ingreso: marzo-2007
Mensajes: 23
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Recoger Una Variable De Un Check Box

ahora en la base de datos si se muetsra si esta marcado o no el campo usu_checked, Genial !!

El problema ahora es que me muestra todos los campos NULL, xq?

Voy a ir a comer algo y vuelvo en 30 min.

Muchas gracias ...
  #24 (permalink)  
Antiguo 02/03/2007, 07:19
 
Fecha de Ingreso: enero-2006
Ubicación: Madrid
Mensajes: 74
Antigüedad: 18 años, 2 meses
Puntos: 2
Re: Recoger Una Variable De Un Check Box

Cita:
Iniciado por kreata Ver Mensaje
ahora en la base de datos si se muetsra si esta marcado o no el campo usu_checked, Genial !!

El problema ahora es que me muestra todos los campos NULL, xq?

Voy a ir a comer algo y vuelvo en 30 min.

Muchas gracias ...
Bueno, vamos solucionando algo :O)
lo de los campos NULL... ¿te refieres al resto de los campos de la base de datos????
  #25 (permalink)  
Antiguo 02/03/2007, 07:37
 
Fecha de Ingreso: marzo-2007
Mensajes: 23
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Recoger Una Variable De Un Check Box

si, exacto.el resto de campo ahora aparace en la bbdd con el valor NULL
  #26 (permalink)  
Antiguo 02/03/2007, 07:40
 
Fecha de Ingreso: enero-2006
Ubicación: Madrid
Mensajes: 74
Antigüedad: 18 años, 2 meses
Puntos: 2
Re: Recoger Una Variable De Un Check Box

ahá... puedes decirme el nombre de esos campos??? el del checkbox es usu_checked... ¿y el resto??? así ordenamos la sentencia sql :O)
  #27 (permalink)  
Antiguo 02/03/2007, 07:47
 
Fecha de Ingreso: marzo-2007
Mensajes: 23
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Recoger Una Variable De Un Check Box

id_usuario ( autoincrementable) = ''
usu_nombre ='$yourname?
usu_apellidos='$mumsname'
usu_direccion='$yourmessage'
usu_poblacion='$poblacion'
usu_provincia='$provincia'
usu_codigo='$codigo'
usu_email='$youremail'
usu_sexo='$sexo'
usu_telf='$candidatephone'
usu_movil='$yourphone'
usu_checked='$checkbox'
  #28 (permalink)  
Antiguo 02/03/2007, 07:52
 
Fecha de Ingreso: enero-2006
Ubicación: Madrid
Mensajes: 74
Antigüedad: 18 años, 2 meses
Puntos: 2
Re: Recoger Una Variable De Un Check Box

prueba esto:
...
$res=mysql_select_db("ac0738",$con); //el nombre de la base de datos debe ser "phmailer" si es otro cambiar.
a partir de aquí:

if($_POST['checkbox'] == "marcado") {
mysql_query("INSERT INTO usuarios (usu_nombre, usu_apellidos, usu_direccion, usu_poblacion, usu_provincia, usu_codigo, usu_email, usu_sexo, usu_telf, usu_movil, usu_checked) values ('$yourname','$mumsname', '$yourmessage', '$poblacion', '$provincia', '$codigo', '$youremail', '$sexo', '$candidatephone', '$yourphone', '$checkbox')”);
}


else {
mysql_query("INSERT INTO usuarios (usu_nombre, usu_apellidos, usu_direccion, usu_poblacion, usu_provincia, usu_codigo, usu_email, usu_sexo, usu_telf, usu_movil, usu_checked) values ('$yourname','$mumsname', '$yourmessage', '$poblacion', '$provincia', '$codigo', '$youremail', '$sexo', '$candidatephone', '$yourphone', 'no marcado')”);
}


y me comentas si quieres (pero pronto, que me voyyyyyyy) :O)
  #29 (permalink)  
Antiguo 02/03/2007, 08:11
 
Fecha de Ingreso: marzo-2007
Mensajes: 23
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Recoger Una Variable De Un Check Box

da error:
Parse error: parse error, unexpected T_STRING in /home/chs/juandelamata.com/home/html/webmaster/phMailer6.php on line 523


y la linea es:

mysql_query("INSERT INTO usuarios (usu_nombre, usu_apellidos, usu_direccion, usu_poblacion, usu_provincia, usu_codigo, usu_email, usu_sexo, usu_telf, usu_movil, usu_checked) values ('$yourname','$mumsname', '$yourmessage', '$poblacion', '$provincia', '$codigo', '$youremail', '$sexo', '$candidatephone', '$yourphone', 'no marcado')”);
  #30 (permalink)  
Antiguo 02/03/2007, 08:14
 
Fecha de Ingreso: enero-2006
Ubicación: Madrid
Mensajes: 74
Antigüedad: 18 años, 2 meses
Puntos: 2
Re: Recoger Una Variable De Un Check Box

a ver...

mysql_query("INSERT INTO usuarios (usu_nombre, usu_apellidos, usu_direccion, usu_poblacion, usu_provincia, usu_codigo, usu_email, usu_sexo, usu_telf, usu_movil, usu_checked) values ('$yourname','$mumsname', '$yourmessage', '$poblacion', '$provincia', '$codigo', '$youremail', '$sexo', '$candidatephone', '$yourphone', 'no marcado')");

había unas comillas raras... creo que en la otra consulta (la del if) también... ¿puedes probar ahora????
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 15:47.