Foros del Web » Programando para Internet » PHP »

checkbox

Estas en el tema de checkbox en el foro de PHP en Foros del Web. Por favor necesito ayuda!!!! Tengo 12 checkbox, que son los meses... deseo que al seleccionar una checkbox, me aparezca el costo del mes en una ...
  #1 (permalink)  
Antiguo 16/01/2011, 18:00
Avatar de madglodi  
Fecha de Ingreso: enero-2011
Ubicación: maracay
Mensajes: 7
Antigüedad: 13 años, 3 meses
Puntos: 0
checkbox

Por favor necesito ayuda!!!!
Tengo 12 checkbox, que son los meses...

deseo que al seleccionar una checkbox, me aparezca el costo del mes en una caja de texto y si selecciono mas de 2, se acumule el precio en la caja te texto(text).... y que al guardarlos me aparezca los meses seleccionado, ya que cuando guardo me aparece el ultimo mes seleccionado

y cuando llame nuevamente ejemplo( la pantalla de pago) con los datos de la persona, aparezca el mes o los meses que ya ha cancelado.. bloqueados....

gracias estare agradecida.....
  #2 (permalink)  
Antiguo 16/01/2011, 18:17
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: checkbox

Crea los checkbox de esta manera:

Código HTML:
<input type="checkbox" name="mes[]" value="30" />Enero
<input type="checkbox" name="mes[]" value="29" />Febrero
<input type="checkbox" name="mes[]" value="10" />Marzo
<input type="checkbox" name="mes[]" value="5" />Abril
Luego para obtener el valor de los que seleccione el usuario utiliza array_sum($_POST['mes'])

Ahora bien, eso no diferencia que mes se selecciono. Por lo que puedes darles indices:
Código HTML:
<input type="checkbox" name="mes[0]" value="30" />Enero
<input type="checkbox" name="mes[1]" value="29" />Febrero
<input type="checkbox" name="mes[2]" value="10" />Marzo
<input type="checkbox" name="mes[3]" value="5" />Abril
Asi los diferencias a la hora de meter los valores a la base de datos para luego recuperar que valores selecciono el usuario en un principio.

De la manera en que pones los valores a la base de datos, depende mucho de tu estructura. Si no es necesario hacer ningun tipo de query para esos datos, puedes serializar el array para luego introducirlo en un campo.
En caso de que necesites hacer algun tipo de consulta y/o busqueda de esos datos, entonces la estructura cambia y depende de tus necesidades. Podrias hacer una relacion 1:n con la tabla usuarios y la de pagos.
  #3 (permalink)  
Antiguo 16/01/2011, 18:56
Avatar de madglodi  
Fecha de Ingreso: enero-2011
Ubicación: maracay
Mensajes: 7
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: checkbox

ok pero en que momento recorres el arreglo....? porque en la base de datos me guarda es el ultimo que selecciono y eso no quiero sino que guarde los tantos checkbos seleccionados... ademas estos a la hora de marcarlo apareca en tiempo real el precio de ese mes y si selecciono otro mes aparezca la suma de los meses asi sucesivamente....

espero enterdeme... Gracias
  #4 (permalink)  
Antiguo 16/01/2011, 18:59
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: checkbox

Cita:
Iniciado por madglodi Ver Mensaje
ok pero en que momento recorres el arreglo....? porque en la base de datos me guarda es el ultimo que selecciono y eso no quiero sino que guarde los tantos checkbos seleccionados... ademas estos a la hora de marcarlo apareca en tiempo real el precio de ese mes y si selecciono otro mes aparezca la suma de los meses asi sucesivamente....

espero enterdeme... Gracias
Que aparezca en tiempo real, eso es con Javascript.
Si vas a hacer una suma de los valores con PHP, no es necesario recorrer el array ya que con array_sum basta.

De todas maneras, trata la variable $_POST['mes'] como un arreglo comun y corriente. En caso de ser necesario iterar sobre estos, usa un bucle foreach()

En la base de datos, ¿debes guardar tanto el mes como el valor del checkbox? ¿O solamente la suma?
  #5 (permalink)  
Antiguo 16/01/2011, 19:20
Avatar de madglodi  
Fecha de Ingreso: enero-2011
Ubicación: maracay
Mensajes: 7
Antigüedad: 13 años, 3 meses
Puntos: 0
Busqueda Respuesta: checkbox

es que yo tengo mi variable declarada como un arreglo y en value hago el llamado, de la variable declara, dejame pasarte el codigo para que lo veas:

bueno espero que lo entiendas
]<?php
$txtnombres= $_REQUEST ['nombres'];
$txtapellidos= $_REQUEST ['apellidos'];
$txtcedula= $_REQUEST ['cedula'];
$bdnivel= $_REQUEST ['nivel'];
$meses= $_REQUEST ['meses'];
$txtprecio_mes= $_REQUEST ['precio'];
$txtcant= $_REQUEST ['cantidad'];
$tipo_pago= $_REQUEST ['tipo_pago'];
$nro= $_REQUEST ['nro'];
$n_banco= $_REQUEST ['n_banco'];
$txtabono= $_REQUEST ['abono'];
$txtmonto_rest= $_REQUEST ['monto_rest'];
$txtmonto_total= $_REQUEST ['nivel'];
$btnAccion= $_REQUEST ['btnAccion'];


switch($btnAccion){
case 'Calcular':
if ($txtprecio_mes<1 && $txtcant<1){
?>
<script>
alert ('El Valor Ingresado fue <?php echo 'El valor ingresado es menor a 1' ?>');
</script>
<?php
} else{

$txtmonto_rest=(($txtprecio_mes*$txtcant)-$txtabono);
$txtmonto_total=($txtprecio_mes*$txtcant);
}

break;
case 'Guardar':
// Conectar con MySql
$enlace=mysql_connect('localhost','root','');
//Asignar variables de base de datos
$db='iut';
//Asignar Variable de Consulta (Query) SQL
$date=date("Y-m-d");
$sql="INSERT INTO pago_men Values ('','$txtcedula','$txtnombres','$txtapellidos', '$bdnivel',' $meses','$tipo_pago','$nro','$n_banco','$txtprecio _mat','$txtabono','$txtmonto_rest','$txtmonto_tota l','$date')";

//Ejecutar consulta a SQL
$resultado=mysql_db_query($db,$sql);
break;
case 'Buscar':
$enlace=mysql_connect('localhost','root','');
//$enlace=mysql_connect('localhost','root','');
//asignar variables de base de datos
$db='iut';
//buscar datos de base de datos psm
$sql="select * FROM estudiante WHERE cedula='$txtcedula' OR nombres='$txtnombres' OR apellidos='$txtapellidos' ";
$resultado=mysql_db_query($db,$sql);
//Mostrar Error
//echo "Error al Cargar Datos".mysql_error();
//verificar si existe el registro
if (mysql_num_rows($resultado)>0) {
$registro=mysql_fetch_array($resultado);
$txtnombres=$registro[0];
$txtapellidos=$registro[1];
$txtcedula=$registro[3];
$bdnivel=$registro[21];
}else{
?>
<script>
alert('el registro no exixte');
window.location='busqueda_men.php'
</script>
<?php
}
break;



case 'Limpiar':
$bdmeses="";
$txtprecio_mes="";
$txtcant="";
$tipo_pago="" ;
$txtabono= "";
$txtmonto_rest="" ;
$txtmonto_total= "";
break;
}
?>

<html>
<head>

<title>Inscripcion de Nuevos Alumnos</title>
<style type="text/css">
<!--
.Estilo3 {font-size: 18px}
-->
</style>
</head>

<body background="imagen/diseño de fondo.jpg">
<table align="center" > <tr><th><img src="imagen/Instituto English.jpg" width="119" height="123"></th>

<th>English Language Teaching Academy (E.L.T.A.) <br>
Cagua Edo. Aragua.</th></tr></table>
<div align="right"><span class="Estilo1">Fecha: </span><?php echo date('d-m-Y') ?></div>
<h2 align="center"> Pago de Mensualidad: </h2>
<form action="<?php echo $PHP_SELF; ?>" name="Cargar_Datos" method="post">
<fieldset>
<legend> <u><b>Datos del Estudiante</b></u> </legend>
<br><label> Nombres: </label>
<input type="text" name="nombres" value="<?php echo $txtnombres; ?>" size="30" maxlength="30" readonly="readonly">

&nbsp;&nbsp;<label> Apellidos: </label>
<input type="text" name="apellidos" value="<?php echo $txtapellidos; ?>" size="30" maxlength="30" readonly="readonly">
<br>
<br><label> Cedula: </label>
<input type="text" name="cedula" value="<?php echo $txtcedula; ?>" size="25" maxlength="8" readonly="readonly">
&nbsp;&nbsp;
<label> Nivel del Curso: </label>
<input type="text" name="nivel" value="<?php echo $bdnivel; ?>" size="30" maxlength="20" readonly="readonly" >
</fieldset>

<table width="684" border="0" >
<tr>
<td width="267"><p><strong>Seleccione el mes a Cancelar:</strong></p>
<p>
<input type="checkbox" name="meses" value="enero"<?php echo ($meses=='enero'?'checked':''); ?> >
Enero <BR>

<input type="checkbox" name="meses" value="febrero"<?php echo ($meses=='febrero'?'checked':''); ?> >
Febrero<BR>
<input type="checkbox" name="meses" value="marzo"<?php echo ($meses=='marzo'?'checked':''); ?> >
Marzo<BR>
<input type="checkbox" name="meses" value="abril"<?php echo ($meses=='abril'?'checked':''); ?> >
Abril<BR>
<input type="checkbox" name="meses" value="mayo"<?php echo ($meses=='mayo'?'checked':''); ?> >
Mayo<BR>
<input type="checkbox" name="meses" value="junio"<?php echo ($meses=='junio'?'checked':''); ?> >
Junio<BR>
<input type="checkbox" name="meses" value="julio"<?php echo ($meses=='julio'?'checked':''); ?> >
Julio<BR>
<input type="checkbox" name="meses" value="agosto"<?php echo ($meses=='agosto'?'checked':''); ?> >
Agosto<BR>
<input type="checkbox" name="meses" value="septiembre"<?php echo ($meses=='septiembre'?'checked':''); ?> >
Septiembre<BR>
<input type="checkbox" name="meses" value="octubre"<?php echo ($meses=='octubre'?'checked':''); ?> >
Octubre<BR>
<input type="checkbox" name="meses" value="noviembre"<?php echo ($meses=='noviembre'?'checked':''); ?> >
Noviembre<BR>
<input type="checkbox" name="meses" value="diciembre"<?php echo ($meses=='diciembre'?'checked':''); ?> >
Diciembre </p> </td>

<td width="424">

<br>
<p><b>Tipo de Pago:</b>
<select name="tipo_pago" size="1">
<option>Seleccione</option>
<option>Tarjeta de Debito</option>
<option>Tarjeta de Credito</option>
<option>Cheque</option>
<option>Efectivo</option>
</select>
<br>
</p>
<label><b>Nro Tarjeta/Cheque:</b></label>
<input type="text" name="nro" value="<?php echo $nro; ?>" size="20" maxlength="30">

<br><br> <label><b>Nombre del Banco:</b> </label>
&nbsp;&nbsp;
<input type="text" name="n_banco" value="<?php echo $n_banco; ?>" size="20" maxlength="30">
<br><br><label><br>
<b>Precio Mensual:</b> </label>

<input type="text" name="precio" value="<?php echo $txtprecio_mes; ?>" size="20" maxlength="30">
&nbsp;&nbsp;<br>
  #6 (permalink)  
Antiguo 16/01/2011, 19:28
Avatar de madglodi  
Fecha de Ingreso: enero-2011
Ubicación: maracay
Mensajes: 7
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: checkbox

<?php

$meses= $_REQUEST ['meses'];
$txtprecio_mes= $_REQUEST ['precio'];


// Conectar con MySql
$enlace=mysql_connect('localhost','root','');
//Asignar variables de base de datos
$db='iut';
//Asignar Variable de Consulta (Query) SQL
$date=date("Y-m-d");
$sql="INSERT INTO pago_men Values ('','$txtcedula','$txtnombres','$txtapellidos', '$bdnivel',' $meses','$tipo_pago','$nro','$n_banco','$txtprecio _mat','$txtabono','$txtmonto_rest','$txtmonto_tota l','$date')";

//Ejecutar consulta a SQL
$resultado=mysql_db_query($db,$sql);


<html>
<head>

<title>pagos de mensualidad</title>

</head>


<form action="<?php echo $PHP_SELF; ?>" name="Cargar_Datos" method="post">
a partir de aqui comienza mi error.....

<table width="684" border="0" >
<tr>
<td width="267"><p><strong>Seleccione el mes a Cancelar:</strong></p>
<p>
<input type="checkbox" name="meses" value="enero"<?php echo ($meses=='enero'?'checked':''); ?> >
Enero <BR>

<input type="checkbox" name="meses" value="febrero"<?php echo ($meses=='febrero'?'checked':''); ?> >
Febrero<BR>
<input type="checkbox" name="meses" value="marzo"<?php echo ($meses=='marzo'?'checked':''); ?> >
Marzo<BR>
<input type="checkbox" name="meses" value="abril"<?php echo ($meses=='abril'?'checked':''); ?> >
Abril<BR>
<input type="checkbox" name="meses" value="mayo"<?php echo ($meses=='mayo'?'checked':''); ?> >
Mayo<BR>
<input type="checkbox" name="meses" value="junio"<?php echo ($meses=='junio'?'checked':''); ?> >
Junio<BR>
<input type="checkbox" name="meses" value="julio"<?php echo ($meses=='julio'?'checked':''); ?> >
Julio<BR>
<input type="checkbox" name="meses" value="agosto"<?php echo ($meses=='agosto'?'checked':''); ?> >
Agosto<BR>
<input type="checkbox" name="meses" value="septiembre"<?php echo ($meses=='septiembre'?'checked':''); ?> >
Septiembre<BR>
<input type="checkbox" name="meses" value="octubre"<?php echo ($meses=='octubre'?'checked':''); ?> >
Octubre<BR>
<input type="checkbox" name="meses" value="noviembre"<?php echo ($meses=='noviembre'?'checked':''); ?> >
Noviembre<BR>
<input type="checkbox" name="meses" value="diciembre"<?php echo ($meses=='diciembre'?'checked':''); ?> >
Diciembre </p> </td>

cada mes debe tener un precio.... al chequer aparezca en esta caja de texto.. ejemplo si chequeo enero y vale 30 y chequeo febrero y vale 20 los 50 deben aparecer en la caja de texto precio y asi sucesivamente


<b>Precio Mensual:</b>

<input type="text" name="precio" value="<?php echo $txtprecio_mes; ?>" size="20" maxlength="30">
&nbsp;&nbsp;<br>

Etiquetas: checkbox
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 18:30.