Foros del Web » Programando para Internet » PHP »

registrar varias checkboxes señalados en BD

Estas en el tema de registrar varias checkboxes señalados en BD en el foro de PHP en Foros del Web. Hola de nuevo peña, Haber tengo otra pequeña duda jejeje (para variar un poco jejeje) Resulta que tengo unos campos checkboxes en el formulario de ...
  #1 (permalink)  
Antiguo 30/04/2009, 13:27
 
Fecha de Ingreso: abril-2009
Mensajes: 23
Antigüedad: 15 años
Puntos: 0
registrar varias checkboxes señalados en BD

Hola de nuevo peña,

Haber tengo otra pequeña duda jejeje (para variar un poco jejeje)

Resulta que tengo unos campos checkboxes en el formulario de registro de empresas en el cual tengo unas 116 categorias registradas y la funciona de registrar estas en la tabla empresas en el campo empCategoriasID funciona perfectamente,

el problema llega cuando elijes mas de una categoria mediante esos checkboxes ya que luego solo me inserta la ultima que señale en el formulario es decir si quiero señalas pinturas y albañileria que serian 2 categorias diferentes solo me mostraria albañileria que es la ultima que seleccioné.

el modo en el que tengo los checkboxes en el formulario es algo asi :

Código PHP:
<p>
Categoría:<br />

<
font class="menu1">

<
input name="empCategoriaID" id="empCategoriaID" value="1" type="checkbox">&nbsp;Administradores de fincas<br></font>

<
font class="menu1">

<
input name="empCategoriaID" id="empCategoriaID" value="2" type="checkbox">&nbsp;Aislamiento e impermeabilización ...<br></font>


<
font class="menu2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name="empCategoriaID" id="empCategoriaID" value="3" type="checkbox">&nbsp;Aislamiento acústico<br></font>




<
font class="menu2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name="empCategoriaID" id="empCategoriaID" value="4" type="checkbox">&nbsp;Aislamiento térmico<br></font>

etc,etc,etc....  (aqui continuaria hasta el final de todas las categorias,cada una lleva el id con el que esta insertado en la bd de categorias

y el contenido donde esta el php al principio es este :


Código PHP:
// incluimos el archivo de conexion
include ('db-cnx.php');
// recibimos el formulario
if(isset($_POST['enviar']) && $_POST['enviar'] == 'Enviar'){
// comprobamos que el formulario no envie campos vacios
if(!empty($_POST['empNombre']) &&
 
$_POST['empTitulo'] &&
 
$_POST['empDireccion'] &&
 
$_POST['empTexto'] &&
 
$_POST['empTelefono'] &&
 
$_POST['empCP'] &&
 
$_POST['empWeb'] &&
 
$_POST['empIdentificativoID'] &&
 
$_POST['empEmail'] &&
 
$_POST['empDNI'] &&
$_POST['empCategoriaID']){

// creamos las variables y les asignamos los valores a insertar
$empNombre $_POST['empNombre'];
$empTitulo $_POST['empTitulo'];
$empDireccion $_POST['empDireccion'];
$empTexto $_POST['empTexto'];
$empTelefono $_POST['empTelefono'];
$empCP $_POST['empCP'];
$empWeb $_POST['empWeb'];
$empIdentificativoID $_POST['empIdentificativoID'];
$empEmail $_POST['empEmail'];
$empDNI $_POST['empDNI'];
$empCategoriaID $_POST['empCategoriaID'];
$empCiudadesID $_POST['ciud_ID'];
$empRegionesID $_POST['reg_ID'];
// hacemos el INSERT en la BD
$sqlInsertemp mysql_query("INSERT INTO empresas
(empNombre, empTitulo, empDireccion, 
empTexto, empTelefono, empCP, empWeb, 
empIdentificativoID, empEmail, empDNI, 
empCategoriaID, empRegionesID, empCiudadesID)
VALUES ('$empNombre', '$empTitulo', '$empDireccion',
 '$empTexto', '$empTelefono', '$empCP',
 '$empWeb', '$empIdentificativoID', '$empEmail',
 '$empDNI', '$empCategoriaID', '$empRegionesID', '$empCiudadesID')"
,
$db_link) or die(mysql_error());
//echo "INSERT INTO empresas
//(empNombre, empTitulo, empDireccion, 
//empTexto, empTelefono, empCP, empWeb, 
//empIdentificativoID, empEmail, empDNI, 
//empCategoriaID, empRegionesID, empCiudadesID)
//VALUES ('$empNombre', '$empTitulo', '$empDireccion',
// '$empTexto', '$empTelefono', '$empCP',
// '$empWeb', '$empIdentificativoID', '$empEmail',
// '$empDNI', '$empCategoriaID', '$empRegionesID', '$empCiudadesID')";

// enviamos un mensaje de exito
echo "<h2>Los datos fueron guardados correctamente</h2>";
}else{
// si el formulario envia algun campo vacio
// enviamos un mensaje de error
echo "<h2>Debe llenar todos los campos del formulario</h2>";
}
}
?> 

como dije me funciona ya todo pero si quiero elejir varias categorias no llegan a la tabla empresas y al campo que hay dentro de ella llamado empCategoriaID


lo que hace es que solo me registra el ultimo checkbox señalado pero no todos los que señale.


¿hay algun remedio a esto? ¿como puedo hacerlo? gracias por todo


un saludo
  #2 (permalink)  
Antiguo 30/04/2009, 13:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: registrar varias checkboxes señalados en BD

bueno, es evidente...

usas el mismo name para "x" checkboxes, y eso provoca que se solo el ultimo checkbox funcione...

lo ideal, es usar arrays como name, y a su ves... procesarlo también en PHP como arrays...

Código HTML:
<input name="foo[]" value="1"/>
<input name="foo[]" value="2"/> 
Código PHP:
$foo join(','$_POST['foo']); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 30/04/2009, 14:01
 
Fecha de Ingreso: abril-2009
Mensajes: 23
Antigüedad: 15 años
Puntos: 0
Respuesta: registrar varias checkboxes señalados en BD

gracias pateketrueke,igual me llamais bobo o tonto jejeje pero el foo ¿seria en este caso empCategoriaID?

es decir
Código PHP:
<input name="empCategoriaID[]" value="1"/>
<
input name="empCategoriaID[]" value="2"/> 
Código PHP:
$empCategoriaID join(','$_POST['empCategoriaID']); 
si es correcto de este modo no nesesitaria ponerleaqui el nombre de la categoria a mano ¿no? ya que le estoy metiendo el id directamente ¿no?

gracias compañero,un saludo
  #4 (permalink)  
Antiguo 01/05/2009, 07:55
 
Fecha de Ingreso: abril-2009
Mensajes: 23
Antigüedad: 15 años
Puntos: 0
Respuesta: registrar varias checkboxes señalados en BD

me lo confirma alguien? plis
  #5 (permalink)  
Antiguo 01/05/2009, 08:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: registrar varias checkboxes señalados en BD

Google: foo

en breve, foo, bar, candy, baz, buzz, etc... son variables meta-sintácticas y significan eso.... variables

osea, puede ser:

Código HTML:
<input name="pepito[]" value="saco un clavito"/> 
Código PHP:
$algo 'algun-valor'
es simple, por eso son "variables" porque varían... y obviamente tu le puedes dar la interpretación que necesites...


suerte!



--
ahora que me lo pregunto: ¿pasaste todo un día sin probar tu código?? ¿y sin buscar en Google?? ¿no era sencillo probar y nada mas?? ¿¿haber que salía??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 01/05/2009, 08:51
 
Fecha de Ingreso: abril-2009
Mensajes: 23
Antigüedad: 15 años
Puntos: 0
Respuesta: registrar varias checkboxes señalados en BD

Gracias pero lo decia por que lo probe tal y como indique arriba y no me funcianaba me deformaba los checkboxes y me tiraba un error,voy a volver a colocarlo y te pongo esactamente lo que me dice
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:22.