En este grupo En todos

Foro de Programación web



como trabajar con checkbox

JAVIER
Mérida, Venezuela
Escrito por Javier Enrique
el 18/09/2007

Hola a todos, tengo un problema al trabajar con los checkbox al programar mi pagina

Me explico, tengo una tabla en la base de datos que tiene un campo id que es autoincremento, y otro campo en el que se deberia almacenar los values de cada uno de los checkbox

Cada check tiene un valor: name:check1  value:1

Check1  value:2

Check1  value:3

Etc....

No logro hacer que esos values se guarden en ese campo, le agradesco mucho su ayuda por favor

Sebastián Solar
Tns en computación e informática insti...
Escrito por Sebastián Solar
el 21/10/2007

Hola.

Lamento no entender bien lo que quieres hacer, pero me llama la atencion algo:
* ¿Cada uno de los checkbox contienen datos distintos?
* ¿Todos los checkbox los tienes con el mismo nombre "check1"?

Si la respuesta a la primera interrogante fuera si, y la segunda idem, entonces el error puede ser que esté ahí. Cada checkbox, debe contener un nombre distinto del otro, y ojala del mismo nombre del campo en que estas almacenando en tu base de datos, pues, al hacerlo de otro modo, el servidor no sabe que dato tomar para incorporar en el campo "X" de la tabla en tu base de datos.

De estar en error, avisame y lo vemos.

Saludos

Zick Corporation®

Javier Enrique
Mérida, Venezuela
Escrito por Javier Enrique
el 22/10/2007

Hola gracias por contestar, en realidad y lo ssolucione, no es la solucion como yo la queria. Pero funciona, la situacion es que de una lista de checkbox se seleccionen y que estoss me guardar el nombre del tipo de examen que se estaba selecionando, pero de la forma que queria no pude, para obtener un resusltado satisfactorio, le puse a cada check un nombre diferente, y modifique en la base de datos, la tabla donde queria que se guardara, colocando los nombres de cada examen, como estoy trabajando con pocos (7 tipos de examen por los momentos) y las casillas lo que haces es guardar si se selecion o no (Y=selecionado; N=no seleccionado), el detalle es al consultar, porque debo poner otros check en la hoja de la consulta, para que se muestren los seleccionados.

Esa fue mi solucion, en caso de trabajar con mas examenes no se podria hacer, ya que en la base de datos la tabla quedaria con muuchos campos y al momento de un error los datos que se perderian serian muchos.

Ahora si tienes otra solucion, bienvenida sea, recuerda, de una lista de check, selecciono tipos de examenes y se guardan en una base de datos. O cualquier otra forma para hacer eso, lo importante es no tipiar el examen, gracias

Sebastián Solar
Tns en computación e informática insti...
Escrito por Sebastián Solar
el 22/10/2007

Hola:

Aun no me queda claro si vas a utilizar checkbox <input type="checkbox" name="checkbox" value="checkbox" /> o un select tipo multiple <select name="select" size="1" multiple="multiple">
</select>.

Javier Enrique
Mérida, Venezuela
Escrito por Javier Enrique
el 23/10/2007

Es facil, lo que pasa es que como soy nuevo programando quiza no me se explicar bien, voy a utilizar los check:

<input name="examen1 type="checkbox">

<input name="examen2 type="checkbox"> etc... Asi con los 7 check,

Y esta seria la sentencia para guardar

$insertSQL = sprintf("INSERT INTO examen (EXA1, EXA2.... ) VALUES (%s, %s,...... )",
                       GetSQLValueString(isset($_POST["examen1"])? "true" : "", "defined",""Y"",""N""),
                       GetSQLValueString(isset($_POST["examen2"])? "true" : "", "defined",""Y"",""N""),......

Javier Enrique
Mérida, Venezuela
Escrito por Javier Enrique
el 17/12/2007
Hola a todos, me gustaria ahora hacer otra preguntica, necesito que los checkbox, cuando no esten seleccionado, me desactiven un boton, y cuando esten seleccionado, lo active, si ahy alguna fomra de hacer eso, se los agradesco
Sebastián Solar
Tns en computación e informática insti...
Escrito por Sebastián Solar
el 18/12/2007
"hola a todos, me gustaria ahora hacer otra preguntica, necesito que los checkbox, cuando no esten seleccionado, me desactiven un boton, y cuando esten seleccionado, lo active, si ahy alguna fomra de hacer eso, se los agradesco "
por JAVIER ENRIQUE (Diciembre 2007)



Claro que puedes. Para eso, debes usar javascript, lo cual funciona de lado del cliente. Ejemplo:

<script language="javascript">
function desactiva_boton(campo){
if(campo. Checked){
document. GetElementById("Boton"). Disabled = false;
}else{
document. GetElementById("Boton"). Disabled = true;
}
}
</script>

Todo esto debes escribirlo antes de la etiqueta </head> y en el formulario...

<input type="Checkbox" name="verificador" onclick="desactiva_boton(this)">
<input type="button" name="boton" id="boton" disabled="disabled">.

Explicacion de todo:
En el script, le pedimos que al seleccionar el checkbox, nos verifique si esta seleccionado o no. Si esta seleccionado, nos activa el boton, de caso contrario, lo desactiva.   Es importante que el id del boton sea identico al puesto en el script, si no no funcionara.

Cualquier cosa, atento a tus comentarios.

Javier Enrique
Mérida, Venezuela
Escrito por Javier Enrique
el 18/12/2007

Me gusto el codigo que me mandaste, funciona bien, pero no logro adactarlo a lo que necesito, veras, los check se marcan dependiendo de un valor en la base de datos, si es Y se marcan y si es N no se marcan y es para una consulta, por lo tanto el usuario debe saber que esta marcando, mas no poder desmarcarlo o marcarlo en el caso de los otros check que tengo, por eso cada check esta disabled para que no lo puedan manipular. Te pongo el codigo de lo que e echo:

La funcion en JS es:
function desactiva_boton(campo){
if(campo. Checked){
document. GetElementById("boton"). Disabled = false;
}else{
document. GetElementById("boton"). Disabled = true;
}
}

Y el boton y el check son:
<input name="boton" type="submit" id="boton" value="Examen1">
<input name="examen1" type="checkbox" onFocus="desactiva_boton(this)" <? Php if (! (strcmp($row_hr["bacteriologia"],"Y"))) {echo "checked";}? >>     

Bien, el problema es el siguiente, cuando le pongo al boton disabled y el valor en la base de datos es Y, el usuario tiene que marcar el check para que el boton se active, y la idea es que el check este disabled al igual que el boton
creo que el error esta en el check, que no debe ir onFocus="desactiva_boton(this)", pero no se que pone.
lo cierto es que el check debe estar disabled, que el boton se active y desactive  sin necesidad de que el usuario marque o desmarque el check
ahora si tienes una mejor idea, de como hacer lo que necesito, te lo agradesco

Sebastián Solar
Tns en computación e informática insti...
Escrito por Sebastián Solar
el 21/12/2007

Ya entiendo algo de lo que necesitas. Lo malo es que aca no se puede hacer algo grafico como para explicarte como quedaria, pero en palabras seria lo siguiente:

Primero, la funcion deberias de cargarla en el <body> con OnLoad, de manera que al cargar la pagina, pueda recorrer todos los checkbox, verificar si estan seleccionados y dependiendo de esto, permitir la habilitacion o inhabilitacion de los botones. Lamentablemente no estoy mentalmente dispuesto como para hacerte el codigo ( llevo 19 hrs continuas trabajando y estoy cansado), pero para darte una idea:

--------
   for (i=0;i<document.f1.elements. Length;i++)
      if(document.f1.elements[i]. Type == "checkbox")
         document.f1.elements[i]. Checked=1 
------
Con este trozo de codigo, recorres todos los checkbox que tienes en tu pagina. Obviamente el codigo php debes tenerlo antes de cargar la etiqueta <html> de tu pagina, por lo que el codigo seria algo así:

Function desactiva_boton(){
  for (i=0;i<document.f1.elements. Length;i++) {
  //contamos todos los checkbox que existan el el formulario llamado f1
      if(document.f1.elements[i]. Checked){
          document. GetElementById("Boton"+i+""). Disabled = false;
      }else{
           document. GetElementById("Boton"+i+""). Disabled = true;
     }
}

Entonces, en el html deberias poner:
<body onload="desactiva_boton()"> de manera que al cargar la pagina, recorra los checkbox, verifique si esta on u off y dependiendo de eso que te active o no los botones. Algo a considerar, es que los botones, deben tener un Id único, de manera que el javascript los pueda identificar y no te margine cualquier boton, sino el que deseas.

Cualquer cosa, ahi estamos atentos, espero te sirva.

Saludos.

  

Escrito por Pene
el 08/08/2009

Por favor aprendan a programar

Ana Laura Lipari
Ingenieria en sistemas utn facultad re...
Escrito por Ana Laura Lipari
el 10/08/2010

Hola:
Estoy haciendo un programa en Webspeed es para la inscripción online a cursos (los cursos tienen distintas cantidades de modulos que estan en una tabla) las personas tienen que poder inscribirse a uno o mas modulos segun elija con un checkbox.
No logro hacer el codigo para ver cual de los checkbox eligio si me pueden ayudar gracias

Sebastián Solar
Tns en computación e informática insti...
Escrito por Sebastián Solar
el 17/08/2010

Hola Laura:

Desgraciadamente no conozco Webspeed, por lo tanto, no se que tipo de programación usa. Sin embargo, si colocas algún trozo de código de que estas trabajando, quizás podríamos buscar una solución a tu inquietud.

Saludos.

Dany Alba
San Juan, Argentina
Escrito por Dany Alba
el 07/10/2010

Hola a todos! Son muy utiles sus comentarios.. Yo tengo un problema en mi tabla de base de datos tengo varios campos, uno de ellos corresponde a varios checkbox , el tema esta en como hago para ingresar a la tabla segun el valor de chekbox


Espero q m entiendan


Gracias

Martha Franciaco Abad
Veracruz, México
Escrito por Martha Franciaco Abad
el 13/03/2013

Ola

Necesito ayuda lo k pasa esk estoy hacendo una plicacion web soy nueva en esto y no se como hacerlo

Mira tengo carios checkbox pero no se como hacer para meterlos a mi base de datos cuando esten seleccionado podrian ayudarme xfavor o decirme en donde estoy mal o como debe de ir plissssss...

Este es mi codigo:


Using System;

Using System.Collections.Generic;

Using System. Linq;

Using System. Web;

Using System.Web.UI;

Using System.Web.UI. WebControls;

Using MySql.Data.MySqlClient;

//using System.Web.UI. WebControls. CheckBox;


Public partial class Default2 : System.Web.UI. Page

{

Protected void Page_Load(object sender, EventArgs e)

{

String nombre_ad = Convert. ToString(Session["nombre_ad"]);

TxtUsuario. Text = nombre_ad;

}

Protected void ImageButton3_Click(object sender, ImageClickEventArgs e)

{

If (! CheckBox1. Checked==false &&! CheckBox2. Checked==false)

{


Label18. Text = "Escoge almenos una";

//CheckBox1. Checked = false;

//CheckBox2. Checked = false;



//if (! CheckBox1. Checked && CheckBox2. Checked)

// {

// CheckBox2. Checked = true;


String cadenaConexion = "Data Source=localhost; Initial Catalog=laboratorio; User=root; Password=123";

MySqlConnection con = new MySqlConnection();

Con. ConnectionString = cadenaConexion;

Con. Open();

//if (! CheckBox1. Checked &&! CheckBox2. Checked &&! CheckBox3. Checked)

//{

// Label18. Text = "Seleccione un checkbox";

//}

//else

//{

// Label18. Text = "Correcto";

//}

MySqlDataAdapter adaptador = new MySqlDataAdapter();



String sQuery = "INSERT INTO OTRAS_PRUEBAS(PRUEBA1, PRUEBA2) VALUES ('" + CheckBox1.Text.Trim() + "','" + CheckBox2.Text.Trim() + "')";

MySqlCommand cmd = new MySqlCommand(cadenaConexion, con);




//if (CheckBox1. Checked)

//{

// Page. Validate();

//}

//if (! Page. IsValid) {

// return;



//}



//else { }



Try

{

Cmd = new MySqlCommand(sQuery, con);

Cmd. ExecuteNonQuery();

ClientScript. RegisterClientScriptBlock(Page. GetType(), "popupScript", "<script language=javascript>alert('Registro guardado correctamente');</script>");




}

Catch (Exception ex)

{

ClientScript. RegisterClientScriptBlock(Page. GetType(), "popupScript", "<script language=javascript>alert('Registro no guardado');</script>");


}

Finally

{

Con. Close();

}

}


Else

{

//CheckBox1. Checked = false;

//CheckBox2. Checked = false;


Label18. Text = "Escoge almenos una prueba";

}

//}

//else{}

}


//protected void validateCheckBoxes_serverValidtae(object source, ServerValidateEventArgs args)

//{


// if (CheckBox1. Checked)

// args. IsValid = false;

// else

// {

// args. IsValid = true;

// }


//}


Protected void CheckBox1_CheckedChanged(object sender, EventArgs e)

{

//if (! CheckBox1. Checked)

//{

// CheckBox1. Checked = true;

//}

//else

//{

// CheckBox1. Checked = false;

//}

//if (CheckBox1.Checked.Equals("1"))

//{

//}

}

}

O podrian decirme en k estoy mal :(


Martha Franciaco Abad
Veracruz, México
Escrito por Martha Franciaco Abad
el 13/03/2013

Ola

Disculpen necesito ayuda lo que pasa esk soy nueva en esto miren tengo varios checkBox y necesito almacenarlos en una base datos y no se como hacerlo por que cuando afuersa tengo que seleccionar todos para k los almacene pero la verdad solo kiero k cuando esten seleccionados no todos ayuda


Miren este es mi codigo podrian decirme en k estoy mal o proporcionarme ayuda xfavor

Using System;

Using System.Collections.Generic;

Using System. Linq;

Using System. Web;

Using System.Web.UI;

Using System.Web.UI. WebControls;

Using MySql.Data.MySqlClient;

//using System.Web.UI. WebControls. CheckBox;


Public partial class Default2 : System.Web.UI. Page

{

Protected void Page_Load(object sender, EventArgs e)

{

String nombre_ad = Convert. ToString(Session["nombre_ad"]);

TxtUsuario. Text = nombre_ad;

}

Protected void ImageButton3_Click(object sender, ImageClickEventArgs e)

{

If (! CheckBox1. Checked==false &&! CheckBox2. Checked==false)

{


Label18. Text = "Escoge almenos una";

//CheckBox1. Checked = false;

//CheckBox2. Checked = false;



//if (! CheckBox1. Checked && CheckBox2. Checked)

// {

// CheckBox2. Checked = true;


String cadenaConexion = "Data Source=localhost; Initial Catalog=laboratorio; User=root; Password=123";

MySqlConnection con = new MySqlConnection();

Con. ConnectionString = cadenaConexion;

Con. Open();

//if (! CheckBox1. Checked &&! CheckBox2. Checked &&! CheckBox3. Checked)

//{

// Label18. Text = "Seleccione un checkbox";

//}

//else

//{

// Label18. Text = "Correcto";

//}

MySqlDataAdapter adaptador = new MySqlDataAdapter();



String sQuery = "INSERT INTO OTRAS_PRUEBAS(PRUEBA1, PRUEBA2) VALUES ('" + CheckBox1.Text.Trim() + "','" + CheckBox2.Text.Trim() + "')";

MySqlCommand cmd = new MySqlCommand(cadenaConexion, con);




//if (CheckBox1. Checked)

//{

// Page. Validate();

//}

//if (! Page. IsValid) {

// return;



//}



//else { }



Try

{

Cmd = new MySqlCommand(sQuery, con);

Cmd. ExecuteNonQuery();

ClientScript. RegisterClientScriptBlock(Page. GetType(), "popupScript", "<script language=javascript>alert('Registro guardado correctamente');</script>");




}

Catch (Exception ex)

{

ClientScript. RegisterClientScriptBlock(Page. GetType(), "popupScript", "<script language=javascript>alert('Registro no guardado');</script>");


}

Finally

{

Con. Close();

}

}


Else

{

//CheckBox1. Checked = false;

//CheckBox2. Checked = false;


Label18. Text = "Escoge almenos una prueba";

}

//}

//else{}

}


//protected void validateCheckBoxes_serverValidtae(object source, ServerValidateEventArgs args)

//{


// if (CheckBox1. Checked)

// args. IsValid = false;

// else

// {

// args. IsValid = true;

// }


//}


Protected void CheckBox1_CheckedChanged(object sender, EventArgs e)

{

//if (! CheckBox1. Checked)

//{

// CheckBox1. Checked = true;

//}

//else

//{

// CheckBox1. Checked = false;

//}

//if (CheckBox1.Checked.Equals("1"))

//{

//}

}

}