Foros del Web » Programando para Internet » PHP »

Validar checkbox en php

Estas en el tema de Validar checkbox en php en el foro de PHP en Foros del Web. Estimados: Necesito de su ayuda. Resulta que tengo un checkbox en un codigo html, tengo que enviar este valor a un case de un fuente ...
  #1 (permalink)  
Antiguo 03/07/2012, 08:17
 
Fecha de Ingreso: junio-2012
Mensajes: 17
Antigüedad: 11 años, 9 meses
Puntos: 0
Validar checkbox en php

Estimados:

Necesito de su ayuda. Resulta que tengo un checkbox en un codigo html, tengo que enviar este valor a un case de un fuente en php y lo que pasa es que no estoy enviando el valor. Si me pudieran ayudar.

Codigo Html:

<td><input type="checkbox" value="1" name="servicio_estado" id="servicio_estado"/><a onclick ="index.php?op=udt&act=cambiar_estados_udt&id={$se rvicio[numero].servicio_id}"></td>

He leído en foros y dicen que tengo que realizar solo un if por el valor que tengo en el checkbox, pero no tengo ningun valor y por defecto ingresa en el else:

Codigo Php:

case "cambiar_estados_udt":
//echo "estoy dentro del caso cambiar_estados_udt";
$safesql = new SafeSQL_MySQL;
$query = "select * from servicio where servicio_id='%s'";
$safe_q = &$safesql->query($query, array($_GET['id']));
$result = mysql_query($safe_q, $link) or die("UPS!.".mysql_error());
$line = mysql_fetch_array($result, MYSQL_ASSOC);
$aux_id = $line['servicio_id'];



echo "Variable checbox: " .$_POST['checkbox'];

if ($_POST['checkbox']=='1')
echo "CheckBox desactivado";
else
echo "CheckBox activado";

$query= "update servicio set servicio_estado = '2' where servicio_id = '$aux_id'";
$smarty->assign("plantilla","panel.tpl");


$safe_q = $safesql->query($query, $_SESSION['sql_grabar_values']);

$result = mysql_query($safe_q, $link) or die("UPS!." . mysql_error());
$id=mysql_insert_id();
$smarty->assign("plantilla","panel.tpl");
grabar_log("Modificación resolución","");



$smarty->assign("plantilla","panel.tpl");



header("Location: index.php?op=panel");
exit();
break;


En la variable post me da la impresión que o estoy pasando el valor de value, si me pudieran ayudar por favor.
  #2 (permalink)  
Antiguo 03/07/2012, 08:29
Avatar de poncharelo_69  
Fecha de Ingreso: octubre-2011
Ubicación: Queretaro
Mensajes: 86
Antigüedad: 12 años, 5 meses
Puntos: 10
Respuesta: Validar checkbox en php

Cuando realizas un envio tipo POST, dentro de tu variable tiene que ir el nombre del input, en este caso checkbox, es decir:

Código PHP:
#Este es tu checkbox
<input type="checkbox" value="1" name="servicio_estado" id="servicio_estado"/>

#prueba poniendo en en tu variable
echo $_POST['servicio_estado'];//Aqui estoy poniendo el nombre de tu input y no su tipo 
Verificalo y dime si te da resultado
  #3 (permalink)  
Antiguo 03/07/2012, 08:38
 
Fecha de Ingreso: junio-2012
Mensajes: 17
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Validar checkbox en php

No me da resultado, al imprimir el valor de $_POST['servicio_estado']; no imprime nada. Gracias
  #4 (permalink)  
Antiguo 03/07/2012, 08:41
Avatar de carmagedon  
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 794
Antigüedad: 18 años, 10 meses
Puntos: 23
Respuesta: Validar checkbox en php

Hola,
Pero no tenés que agregar las etiquetas from? Agrega esos parámetros del onclick en el action y deberia funcionarte sin problemas.

Saludos!
__________________
Freelance - Aplicaciones Web
  #5 (permalink)  
Antiguo 03/07/2012, 08:45
 
Fecha de Ingreso: junio-2012
Mensajes: 17
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Validar checkbox en php

Podrias explicarlo un poco mas claro por favor, con codigo si fuera posible. Gracias
  #6 (permalink)  
Antiguo 03/07/2012, 08:47
Avatar de vicram10  
Fecha de Ingreso: enero-2009
Ubicación: Asuncion
Mensajes: 326
Antigüedad: 15 años, 2 meses
Puntos: 27
Respuesta: Validar checkbox en php

puedes poner todo el codigo html?...
ya que para enviar el valor del checkbox debes usar el metodo get o post dentro de un "form"
y ahi no imprime nada por que no estas enviandolo por metodo POST...
  #7 (permalink)  
Antiguo 03/07/2012, 08:48
Avatar de carmagedon  
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 794
Antigüedad: 18 años, 10 meses
Puntos: 23
Respuesta: Validar checkbox en php

Perdón, puse "from" en vez de "form".

Código HTML:
Ver original
  1. <form action="tuarchivo.php?parametros" method="post">
  2. <!--tus inputs, textareas, checkbox, radiobuttons, etc...-->
  3. </form>

De esa forma estoy seguro que te va a funcionar.
Saludos!
__________________
Freelance - Aplicaciones Web
  #8 (permalink)  
Antiguo 03/07/2012, 09:12
 
Fecha de Ingreso: junio-2012
Mensajes: 17
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Validar checkbox en php

No me funcionó de la forma que decías, yo ya la tenia así también. Envío el código html:


<h2>PANEL DE CONTROL DE BITACORA DE TI</h2>
{$paginador}<br />
<form method="post" name="fpanel" id="fpanel" action="index.php?op=udt">
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="boxt">
<tr>
<th colspan="8" scope="col">Estado al: </th>
</tr>
<tr>

<th>Area</th>
<th>Servicio</th>
<th>Aplicación</th>
<th>Soporte Hardware y Software Base</th>
<th>Estado </th>
<th>Revisión</th>
<th colspan="2" rowspan="1">Estados</th>
</tr>
{section name=numero loop=$servicio}
{strip}
<tr bgcolor="{cycle values='#FFFFFF,#DFF4D2'}">
<td>{$servicio[numero].servicio_area}</td>
<td>{$servicio[numero].servicio_servicio}</td>
<td>{$servicio[numero].servicio_aplicacion}</td>
<td>{$servicio[numero].servicio_aplicacion}</td>
<td><a href="index.php?op=udt&act=estados_udt&id={$servic io[numero].servicio_id}">{$servicio[numero].img1|align:c}</a></td>
<td><input type="checkbox" value="1" name="servicio_estado" id="servicio_estado"/></td>
<td><itemIcon="images/menu_panel.gif"><a href="index.php?op=udt&act=cambiar_estados_udt&id= {$servicio[numero].servicio_id}">OK</a></td>
<td><itemIcon="images/menu_panel.gif"><a href="index.php?op=udt&act=estados_udt&id={$servic io[numero].servicio_id}">NO OK</a></td>

</tr>
{/strip}
{/section}

</table>
</form>
{$paginador}
  #9 (permalink)  
Antiguo 03/07/2012, 09:23
Avatar de vicram10  
Fecha de Ingreso: enero-2009
Ubicación: Asuncion
Mensajes: 326
Antigüedad: 15 años, 2 meses
Puntos: 27
Respuesta: Validar checkbox en php

tenes que agregarle el boton submit para poder enviar los datos de tu formulario a tu pagina php..


Código HTML:
Ver original
  1. <input type="submit" name="enviar" value"OK" />
  #10 (permalink)  
Antiguo 03/07/2012, 09:37
 
Fecha de Ingreso: junio-2012
Mensajes: 17
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Validar checkbox en php

No entiendo, en que parte del codigo debiera agregar lo anterior?
  #11 (permalink)  
Antiguo 03/07/2012, 09:51
Avatar de vicram10  
Fecha de Ingreso: enero-2009
Ubicación: Asuncion
Mensajes: 326
Antigüedad: 15 años, 2 meses
Puntos: 27
Respuesta: Validar checkbox en php

dentro del form.. y para que no este descuadrado dentro de una fila de tu table..
  #12 (permalink)  
Antiguo 03/07/2012, 10:37
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Validar checkbox en php

Además deberás tener en cuenta que los checkbox son un tanto especiales, si no los marcas, no los recibes en donde procesas el formulario, por lo cual, deberás preguntar si existe la variable de tu checkbox, si no existe es que no lo marcaron.
  #13 (permalink)  
Antiguo 03/07/2012, 10:54
 
Fecha de Ingreso: junio-2012
Mensajes: 17
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Validar checkbox en php

Señores sigo sin entender donde tengo que agregar este codigo, soy nuevo en este rogaría ser mas específicos, gracias
  #14 (permalink)  
Antiguo 03/07/2012, 11:23
Avatar de carmagedon  
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 794
Antigüedad: 18 años, 10 meses
Puntos: 23
Respuesta: Validar checkbox en php

Tenés que agregar lo que te mencionaron anteriormente:

Código HTML:
Ver original
  1. <input type="submit" name="enviar" value"OK" />

Buscá por Internet como hacer un formulario y enviar los datos via $_GET / $_POST
__________________
Freelance - Aplicaciones Web
  #15 (permalink)  
Antiguo 03/07/2012, 12:29
 
Fecha de Ingreso: junio-2012
Mensajes: 17
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Validar checkbox en php

Me genera un boton ese codigo, lo que necesito es que genere un checkbox y que envie un valor, el que sea, yo le puse 1:

<td><input type="checkbox" value="1" name="servicio_estado" id="servicio_estado"/></td>
  #16 (permalink)  
Antiguo 03/07/2012, 13:05
Avatar de vicram10  
Fecha de Ingreso: enero-2009
Ubicación: Asuncion
Mensajes: 326
Antigüedad: 15 años, 2 meses
Puntos: 27
Respuesta: Validar checkbox en php

lo que pasa es que tenes un checkbox y ese checkbox la unica forma de trasladar el valor que tiene es enviando por metodo post o get a traves de un form..

y el boton que te dije para agregar es el que te sirve para enviar el checkbox, no que ese lo reemplazaras por el checkbox..

http://es.kioskea.net/contents/html/htmlform.php3
http://altamiraweb.net/metodo-post-y-metodo-get

te conviene poner un poco de tu parte para leer aunque sea lo basico sobre este tipo de cosas vas a ver que aprenderas rapido por que es sencillo..
  #17 (permalink)  
Antiguo 03/07/2012, 14:22
 
Fecha de Ingreso: junio-2012
Mensajes: 17
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Validar checkbox en php

En la definición del form agrego el metodo post

<form method="post" name="fpanel" id="fpanel" action="index.php?op=udt">

y es en el caso donde quiero recibir el valor donde no llega nada.

case "cambiar_estados_udt":
//Color Verde
echo "<br>estoy dentro del caso cambiar_estados_udt";
echo "<br>case del color verde";
$safesql = new SafeSQL_MySQL;
$query = "select * from servicio where servicio_id='%s'";
$safe_q = &$safesql->query($query, array($_GET['id']));
$result = mysql_query($safe_q, $link) or die("UPS!.".mysql_error());
$line = mysql_fetch_array($result, MYSQL_ASSOC);
// echo "<br>id: " .$line['servicio_id'];
$aux_id = $line['servicio_id'];
$_GET['servicio_estado']=$_GET['servicio_estado'];

echo "servicio estado= " .$_GET['servicio_estado'];

if ($_POST['checkbox']=='1')
echo "CheckBox desactivado";
else
echo "CheckBox activado";

Se va siempre por el else. Entiendo lo que ustedes dicen, respecto de que debo pasar el valor por post, pero lo que sucede es que no estoy llegando con este valor al case del php.

Si alguien tuviera alguna explicación.
  #18 (permalink)  
Antiguo 03/07/2012, 15:11
Avatar de vicram10  
Fecha de Ingreso: enero-2009
Ubicación: Asuncion
Mensajes: 326
Antigüedad: 15 años, 2 meses
Puntos: 27
Respuesta: Validar checkbox en php

para empezar.. en que archivo vos capturas lo que no te aparece como tu dices.. y "COMO" haces para enviar los datos.. o sea a que le das click.. a que boton.. enlace para simular enviar el valor del check y que no te captura nada.....
  #19 (permalink)  
Antiguo 03/07/2012, 15:44
 
Fecha de Ingreso: junio-2012
Mensajes: 17
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Validar checkbox en php

Este es el codigo html:

<h2>PANEL DE CONTROL DE BITACORA DE TI</h2>

<form method="post" name="fpanel" id="fpanel" action="udt.php">
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="boxt">
<tr>
<th colspan="8" scope="col">Estado al: </th>
</tr>
<tr>

<th>Area</th>
<th>Servicio</th>
<th>Aplicación</th>
<th>Soporte Hardware y Software Base</th>
<th>Estado </th>
<th>Revisión</th>
<th colspan="2" rowspan="1">Estados</th>
</tr>
{section name=numero loop=$servicio}
{strip}
<tr bgcolor="{cycle values='#FFFFFF,#DFF4D2'}">
<td>{$servicio[numero].servicio_area}</td>
<td>{$servicio[numero].servicio_servicio}</td>
<td>{$servicio[numero].servicio_aplicacion}</td>
<td>{$servicio[numero].servicio_aplicacion}</td>
<td><a href="index.php?op=udt&act=estados_udt&id={$servic io[numero].servicio_id}">{$servicio[numero].img1|align:c}</a></td>
<td><input type="checkbox" value="1" name="servicio_estado" id="servicio_estado"/></td>
<td><itemIcon="images/menu_panel.gif"><a href="index.php?op=udt&act=cambiar_estados_udt&id= {$servicio[numero].servicio_id}">OK</a></td>
<td><itemIcon="images/menu_panel.gif"><a href="index.php?op=udt&act=estados_udt&id={$servic io[numero].servicio_id}">NO OK</a></td>

</tr>
{/strip}
{/section}

</table>
</form>





Y este es el codigo php que quiero que reciba el valor del checkbox:


<?php

/**
* @author 12345
* @copyright 2010
*/


$result=db_query("select * from servicio where servicio_area='UDT'");

while ($line=mysql_fetch_array($result,MYSQL_ASSOC))
{
$arr=array("img1" => "<img src='images/".$imagenes[rand(3,3)]."'>","img2" => "<img src='images/".$imagenes[rand(3,3)]."'>","img3" => "<img src='images/".$imagenes[rand(3,3)]."'>","img4" => "<img src='images/".$imagenes[rand(3,3)]."'>");
//$result2=db_query("select count(*) as total from inscripciones where inscripcion_curso='%s'",array($line['curso_codigo']));
//$line2=mysql_fetch_array($result2,MYSQL_ASSOC);
$smarty->assign("servicio_estado", array("Seleccione..","OK","OK con Observaciones", "No OK"));
$smarty->append("servicio",array_merge($line,$arr));
}

$smarty->assign("plantilla","udt/udt.tpl");






switch ($act)
{





case "cambiar_estados_udt":
//Color Verde
//echo "<br>estoy dentro del caso cambiar_estados_udt";
//echo "<br>case del color verde";
$safesql = new SafeSQL_MySQL;
$query = "select * from servicio where servicio_id='%s'";
$safe_q = &$safesql->query($query, array($_GET['id']));
$result = mysql_query($safe_q, $link) or die("UPS!.".mysql_error());
$line = mysql_fetch_array($result, MYSQL_ASSOC);
// echo "<br>id: " .$line['servicio_id'];


$aux_id = $line['servicio_id'];
$_POST['servicio_estado']=$_POST['servicio_estado'];

//Aca esta la validacion que verifica si llego el valor del checkbox
// He probado contodo con isset, ==, !=, etc.

if ($_POST['servicio_estado']=='1')
echo "<br>CheckBox desactivado";
else
echo "<br>CheckBox activado";

$query= "update servicio set servicio_estado = '2' where servicio_id = '$aux_id'";
$smarty->assign("plantilla","panel.tpl");

$safe_q = $safesql->query($query, $_SESSION['sql_grabar_values']);
$result = mysql_query($safe_q, $link) or die("UPS!." . mysql_error());
$id=mysql_insert_id();
$smarty->assign("plantilla","panel.tpl");
grabar_log("Modificación resolución","");



$smarty->assign("plantilla","panel.tpl");


$smarty->assign("plantilla","panel.tpl");
header("Location: index.php?op=panel");
exit();
break;

Mas abajo vienen mas casos que están funcionando correctamente y se cierra el php

Etiquetas: checkbox, html, mysql, sql, variables
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




La zona horaria es GMT -6. Ahora son las 08:48.