Foros del Web » Programando para Internet » PHP »

Recoger los datos de los checkbox

Estas en el tema de Recoger los datos de los checkbox en el foro de PHP en Foros del Web. Hola, quiero saber si se puede cambiar el campo para que recoja otros datos. Por ejemplo: los checkbox seleccionados por los visitantes, me envía los ...
  #1 (permalink)  
Antiguo 06/08/2006, 09:02
 
Fecha de Ingreso: diciembre-2005
Mensajes: 29
Antigüedad: 18 años, 4 meses
Puntos: 0
Mensaje Recoger los datos de los checkbox

Hola, quiero saber si se puede cambiar el campo para que recoja otros datos.

Por ejemplo:

los checkbox seleccionados por los visitantes, me envía los values al scrip en php.

Estos values tienen el nombre de campo (name), y también el value (valor), xx,xx € , cada uno.

Mi pregunta es: ¿Hay alguna forma de modificar el campo que recoge los values para que recoja y me devuelva los name de los checkbox seleccionados?

Aquí pongo un pequeño ejemplo, Espero vuestra ayuda, un saludo.


------------------------
1.- Datos:*
------------------------
Nombres de los Vehículos: $Uno $Dos $Tres $Cuatro $Cinco // Este es el campo que recoge los values y que quiero cambiar para que recoja el name

------------------------
  #2 (permalink)  
Antiguo 06/08/2006, 10:20
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 3 meses
Puntos: 9
pone esto como nombre para tus checkbox

<input type="checkbox" name="Vehiculo['Auto_1']" value="30,50">

entoonces con

$claves = array_keys($_POST['Vehiculo']) obtenes los nombres

y con

for ($i = 0 ; $i < count($claves) ; $i++){
echo $_POST['Vehiculo'][$claves[$i]]
// obtenes nlos valores

}
  #3 (permalink)  
Antiguo 06/08/2006, 12:59
 
Fecha de Ingreso: diciembre-2005
Mensajes: 29
Antigüedad: 18 años, 4 meses
Puntos: 0
Hola, Nefertiter.

Agradezco tu respuesta pero se me olvidaba decirte que los checkbox los tengo puesto en un formulario y si hago el cambio que me indicas pues entonces no me funciona el javascrip.

Espero tu respuesta, un Saludo.


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>validatodoeste</title>

<script>

function valida_envia(){

var cuentaChecked=0;
for(var i=0;i<fvalida.elements.length;i++) {
if(fvalida.elements[i].checked) {
cuentaChecked+=1;
}
}
if(cuentaChecked == 0) {
window.alert("Por favor Seleccione al menos una Provincia");
document.fvalida.todos.focus()
return false;
}

//valido el Email
if (document.fvalida.Email.value.indexOf('@')== -1){
alert("Por favor Escriba su E-Mail Correcto")
document.fvalida.Email.focus()
return 0;
}

//el formulario se envia
alert("Muchas gracias por enviar el formulario");
document.fvalida.submit();
}

</script>

</head>

<body topmargin="0" leftmargin="0">

<form name="fvalida" method="POST" action="contactform2.php">
<input type="hidden" name="rec_mailto" value="[email protected]"><input type="hidden" name="rec_subject" value="Nueva Solicitud desde su Formulario"><input type="hidden" name="rec_thanks" value="thanks.php">
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" align="left" colspan="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font size="4">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;
1.- Datos del la Solicitud:&nbsp;&nbsp;</font></td>
</tr>
<tr>
<td width="29%" align="right"></td>
<td width="71%"></td>
</tr>
<tr>
<td width="100%" align="center" colspan="2">
<p align="center"><font size="3">Elija el Vehículo</font></p>
</td>
</tr>
<tr>
<td width="100%" align="center" colspan="2"></td>
</tr>
<tr>
<td width="100%" align="center" colspan="2">
<p align="center"><font size="2">&nbsp;&quot;Para Elegir Todas marque
Aquí&quot; <input type="checkbox" onclick="marcar(this)" value="0" name="todos">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
El total es:&nbsp; <input type="text" name="total" size="9"></font></p>
</td>
</tr>
<tr>
<td width="100%" align="center" colspan="2">&nbsp;</td>
</tr>
<tr>
<td width="100%" align="center" colspan="2">
<script language="JavaScript" type="text/javascript">
var c=new Array('Mercedes','Renault','Citroen','Volvo','Ford ');

function marcar(check){
for(z=0;z<c.length;z++){
document.forms[0][c[z]].checked=check.checked;
}
calcular();
}

function calcular(){
tt=0;
for(z=0;z<c.length;z++){
tt+=(document.forms[0][c[z]].checked)?parseFloat(document.forms[0][c[z]].value):0;
}
document.forms[0]['total'].value=formatCurrency(tt);
}

function formatCurrency(num)
{
num = num.toString().replace(/\€|\,/g,'');
if(isNaN(num))
num = "0";
cents = Math.floor((num*100+0.5)%100);
num = Math.floor((num*100+0.5)/100).toString();
if(cents < 10)
cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+'.'+num.substring(num.length-(4*i+3));
return (num + "," + cents+ " €" );
}
</script>
<div align="center">
<center>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="107" align="center"></td>
<td width="107" align="center">
<p align="left"><font size="2"><input onclick="calcular()" type="checkbox" value="10.20" name="Mercedes" value="Mercedes">Mercedes</font></td>
<td width="108" align="center">
<p align="left"><font size="2"><input onclick="calcular()" type="checkbox" value="10.20" name="Renault" value="Renault">Renault</font></td>
<td width="108" align="center">
<p align="left"><font size="2"><input onclick="calcular()" type="checkbox" value="10.20" name="Citroen" value="Citroen">Citroen</font></td>
<td width="108" align="center">
<p align="left"><font size="2"><input onclick="calcular()" type="checkbox" value="10.20" name="Volvo" value="Volvo">Volvo</font></td>
<td width="108" align="center">
<p align="left"><font size="2"><input onclick="calcular()" type="checkbox" value="10.20" name="Ford" value="Ford">Ford</font></td>
<td width="108" align="center"></td>
</tr>
<tr>
<td width="754" align="center" colspan="7"></td>
</tr>
<tr>
<td width="100%" align="center" colspan="7">
<hr color="#002F5E" align="center">
</td>
</tr>
</center>
<tr>
<td width="100%" align="center" colspan="7">
<p align="left"></td>
</tr>
</table>
</div>
</td>
</tr>
<tr>
<td width="29%" align="right"><span class="producto_dato"><font size="2">Nombre
o Razón Social:&nbsp;</font></span></td>
<td width="71%"><font size="2"><input name="Nombre" type="text" size="35"></font></td>
</tr>
<tr>
<td width="29%" align="right"></td>
<td width="71%"></td>
</tr>
<tr>
<td width="29%" align="right"><span class="producto_dato"><font size="2">Teléfonos
de Contacto:&nbsp;</font></span></td>
<td width="71%"><font size="2"><input name="Telefono" type="text" size="10" maxlength="9">
- </font><span class="producto_dato"><font size="2">Email: </font></span><font size="2"><input name="Email" type="text" size="30"></font><span class="producto_dato"><font size="2">&nbsp;</font></span></td>
</tr>
<tr>
<td width="29%" align="right"></td>
<td width="71%"></td>
</tr>
<tr>
<td width="29%" align="right"></td>
<td width="71%">
<p align="left"><font size="2">Descripción de productos y servicios:</font></p>
</td>
</tr>
<tr>
<td width="29%" align="right"></td>
<td width="71%"><font size="2"><textarea name="Texto" cols="35" rows="5"></textarea></font></td>
</tr>
<tr>
<td width="29%" align="right"></td>
<td width="71%"></td>
</tr>
</table>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<blockquote>
<p align="center"><font face="Arial" size="2" color="#336699"><b><input type="button" name="Submit" value="Enviar" onclick="valida_envia()"></b></font></p>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</blockquote>
</form>

</body>
  #4 (permalink)  
Antiguo 06/08/2006, 13:50
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 3 meses
Puntos: 9
estoy seguro podras adaptar el javascript, pregunta en el foro correspondiente para tal problema, yo no se mucho de javascript
  #5 (permalink)  
Antiguo 06/08/2006, 14:08
 
Fecha de Ingreso: diciembre-2005
Mensajes: 29
Antigüedad: 18 años, 4 meses
Puntos: 0
De acuerdo Alguna otra Ayuda?

Hola a todos/as:

¿Alguna otra ayuda por parte de alguien?

Gracias.
  #6 (permalink)  
Antiguo 07/08/2006, 02:44
 
Fecha de Ingreso: diciembre-2005
Mensajes: 29
Antigüedad: 18 años, 4 meses
Puntos: 0
Hola, Nefertiter.

Ya he solucionado lo del tema de javascript y he puesto los checkbox tal como me dijiste.

Pero el tema de $claves = array_keys($_POST['Vehiculo']) obtenes los nombres - no me quedó claro.

dime exactamente donde tengo que colocarlo, y si además tengo que hacer alguna modificación más.

Un Salud.
  #7 (permalink)  
Antiguo 07/08/2006, 04:10
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 3 meses
Puntos: 9
sino te queda claro mira la documentacion array_keys

arra_keys te devuelve el nombre de las claves en un array, luego llamando a $_POST[$clave[$i]] obtenes los respectivos valores...
  #8 (permalink)  
Antiguo 07/08/2006, 06:24
Avatar de refineriaweb  
Fecha de Ingreso: junio-2004
Ubicación: Palma de Mallorca
Mensajes: 196
Antigüedad: 19 años, 10 meses
Puntos: 1
ayuda con checkbox

Hola a todos,

mi pregunta creo que es más sencilla.

Como introduzco los diferentes items que me marquen en un checkbox en la base de datos?

Los checkbox son del tipo:

Código:
<input type="checkbox" name="estudis_finalitzats" value="egb">
<input type="checkbox" name="estudis_finalitzats" value="eso">
<input type="checkbox" name="estudis_finalitzats" value="bachillerato">
Y tengo una base de datos, donde uno de los campos, es 'estudis_finalitzats' y solo se me introduce el último checkbox que marcan.

El código de mi form.php es:

Código:
<?include($DOCUMENT_ROOT."/backoffice/config.php");?>
<?
	$id=mysql_connect ("localhost", "$dblogin", "$dbpass") or die ('I cannot connect to the database because: ' . mysql_error());
	mysql_select_db ("$dbname");
?>

<?
	if(isset($new))
	{
		$res=mysql_query("insert into cv(nombre,apellidos,nacimiento,dni,email,telf,movil,direccion,cp,poblacion,estudis_finalitzats,estudis_en_curs,idiomes,titulacio_lleure,experiencia_lleure,disponibilitat,tagradaria) values('$nombre','$apellidos','$nacimiento','$email','$telf','$movil','$idiomes','$dni','$direccion','$cp','$poblacion','$estudis_finalitzats','$titulacio_lleure','$experiencia_lleure','$disponibilitat','$tagradaria','$estudis_en_curs')");
	}
?>
<?php include('templates/header.php'); ?>
<br><center><font face="Arial" size="3" color="#0000FF">EL TEU CURRICULUM HA ESTAT AFEGIT A LA NOSTRA BASE DE DADES.<BR><BR>GRÀCIES</font>
</center>



<?php include('templates/footer.php'); ?>
hasta ahora nunca trabajaba con checkbox, y ahora se me planteo la duda. entiendo que cuando entro al phpmyadmin y voy a 'browse' para ver el contenido de la DB, deberian estar los campos del checkbox separados por comas. Pero no se hacero...

Alguien sabe como se debe hacer??

Gracias
__________________
www.refineriaweb.com
Diseño Web · Hosting · Registro de dominios · Alta en buscadores · Resellers
  #9 (permalink)  
Antiguo 07/08/2006, 08:40
 
Fecha de Ingreso: diciembre-2005
Mensajes: 29
Antigüedad: 18 años, 4 meses
Puntos: 0
Hola, refineriaweb.

Te agradecería que no interfirieses en el tema.

1º por que no tiene nada que ver con lo que tu planteas.

2º por que ma chafas todo el trabajo que llevo configurando y que me puede ser útil a mí y a muchos otros webmaster.

Si quieres hacer una consulta, Abre un nuevo tema en el foro.

Salud.
  #10 (permalink)  
Antiguo 07/08/2006, 08:50
 
Fecha de Ingreso: diciembre-2005
Mensajes: 29
Antigüedad: 18 años, 4 meses
Puntos: 0
Hola, Nefertiter

Hice una pregunta sobre un tema concreto, tu me respondiste pero no me da solución.

Quiero decirte que cuando hago una pregunta en el foro es para obtener una respuesta con una solución, no para que me des una referencia y me quede aún más liado.

Si no sabes resolver las dudas o preguntas de los webmaster, preferiria que no contestasen.

Al final no me has solucionado nada y he estado perdiendo el tiempo.

Por ello te ruego que me des la solución concreta a mi pregunta.

De lo contrario es mejor que me digas que no la sabes.

Un salud
  #11 (permalink)  
Antiguo 07/08/2006, 09:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Por ello te ruego que me des la solución concreta a mi pregunta.

De lo contrario es mejor que me digas que no la sabes..

Con esa actitud no dan ganas ni de intentar responderte .. Recuerda que forosdelweb.com no es una consultoría privada para resolver problemas, es un foro público donde cada cual aporta lo que buenamente puede, lo más que puedes hacer tu es -agradecer- el intento y hacer la acotación tal vez de que no te funciona la respuesta obtenida, en su defecto, omites esas respuestas y aclaras más el tema .. tu crees que tu pregunta es clara y a veces no es así .. por eso vienen las confusiones de los que pretenden ayudarte.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 07/08/2006 a las 09:34
  #12 (permalink)  
Antiguo 07/08/2006, 09:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por kdiz Ver Mensaje
Hola, Nefertiter

Hice una pregunta sobre un tema concreto, tu me respondiste pero no me da solución.

Quiero decirte que cuando hago una pregunta en el foro es para obtener una respuesta con una solución, no para que me des una referencia y me quede aún más liado.

Si no sabes resolver las dudas o preguntas de los webmaster, preferiria que no contestasen.

Al final no me has solucionado nada y he estado perdiendo el tiempo.

Por ello te ruego que me des la solución concreta a mi pregunta.

De lo contrario es mejor que me digas que no la sabes.

Un salud
Otro detalle .. ya te dieron alguna respuestas al respecto en el foro de Javascript:

http://www.forosdelweb.com/f13/marcar-sumar-todos-checkbox-vez-414623/

Así que menos argumentos tienes para venir aquí a exigir nada. Todo lo que se te indica son recomendaciones .. así tendrás que aceptarlas.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #13 (permalink)  
Antiguo 07/08/2006, 12:52
 
Fecha de Ingreso: diciembre-2005
Mensajes: 29
Antigüedad: 18 años, 4 meses
Puntos: 0
OK, Reconozco que me he pasado un poco.

Pido excusas a todos/as.

Un saludo.
  #14 (permalink)  
Antiguo 07/08/2006, 13:06
Avatar de Nefertiter  
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 3 meses
Puntos: 9
Cita:
Al final no me has solucionado nada y he estado perdiendo el tiempo.
yo puedo tener una falta de capacidad a la hora de explicar, lo cual no es mi obligacion, pero creo ( es relativo desde ya) con minimo conocimiento podes comprender y hacer de mi respuesta original algo trivial, el problema recae en tu capacidad para aprender e interpretar lo q el lenguaje muy claramente nos proporciona.

sino keres perder el tiempo y tampoco aprender, el cual es un proceso en estos campos algo autodidactico casi, podes pagarle a un webmaster, siempre es la solucion mas rapida.
  #15 (permalink)  
Antiguo 07/08/2006, 15:33
Avatar de refineriaweb  
Fecha de Ingreso: junio-2004
Ubicación: Palma de Mallorca
Mensajes: 196
Antigüedad: 19 años, 10 meses
Puntos: 1
con cariño...

con cariño Kdiz, pero por no decir algo que seria censurado me callare :D

Replanteate las cosas, o poca gente te ayudara.

Voy con otro post... no vaya a ser que a mi si me den solucion...
__________________
www.refineriaweb.com
Diseño Web · Hosting · Registro de dominios · Alta en buscadores · Resellers
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 13:33.