PHP - Problema array con checkboxes

 
Vista:
sin imagen de perfil

Problema array con checkboxes

Publicado por Sebastian (35 intervenciones) el 25/01/2016 03:16:45
Saludos, espero me puedan ayudar.

Tengo una tabla dinámica de la siguiente forma:

tablaidiomas

Mediante jquery añado filas a la tabla para ingresar mas idiomas.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//creo una nueva fila
 
var idusu = "<?php echo $idusuariologeado; ?>" ;
var fila='<tr><td>&nbsp;</td>'+
 
'<td><input name="idiomas_nombre[]" type="text" placeholder="Idioma" class="form-control input-md"  /><input  name="idiomas_usu[]" type="text" value="'+ idusu + '" > </td>'+
 
	 '<td><input  name="idiomas_suficiencia[]" type="checkbox" value="1" >'+
 
'<td><input  name="idiomas_escritura[]" type="checkbox" value="1" >'+
 
'<td><input  name="idiomas_lectura[]" type="checkbox" value="1"  ></td>'+
 
'<td align="center"><input  name="idiomas_hablado[]" type="checkbox" value="1" ></td></tr>';
 
//añado fila a la tabla
 
$('#tab_logic').append(fila);

Con un boton, guardo los nuevos idiomas ingresados (n cantidad) en la base con sus respectivos niveles de conocimiento (0 si no esta marcado el checkbox, 1 si esta).

Mi problema es que no logro capturar los datos de los checkboxes individualmente para cada idioma ingresado.

Cuando inserto más de un idioma nuevo, se ingresan correctamente los nombres_idioma pero los valores de los checkboxes se mezclan entre si y se ingresan solo en el primero.

Este es el codigo que utilio para capturar los values de los checkboxes en un array

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$nombre=$_POST['idiomas_nombre'];
$usu=$_POST['idiomas_usu'];
$suficiencia=$_POST['idiomas_suficiencia'];
$escritura=$_POST['idiomas_escritura'];
$lectura=$_POST['idiomas_lectura'];
$hablado=$_POST['idiomas_hablado'];
 
//recorremos y vamos insertando los datos en la tabla mysql
for ($i = 0; $i < count($nombre); $i++) {
	$sql = "INSERT INTO `idiomas` ( `idiomas_usu` , `idiomas_nombre` , `idiomas_suficiencia` , `idiomas_escritura`, `idiomas_lectura`, `idiomas_hablado` )
	VALUES( '".$usu[$i]."', '".$nombre[$i]."' , '".$suficiencia[$i]."' ,
	'".$escritura[$i]."' , '".$lectura[$i]."', '".$hablado[$i]."')";
 
 
	mysql_select_db($database_prueba, $prueba);
	$Result1 = mysql_query($sql, $prueba) or die(mysql_error());
	//ENVIAR MAIL DE NOTIFICACION/////////////////////////////////////
}

Sin embargo cuando ingreso cajas de texto en lugar de checkbox me funciona a la perfección.

No se si estoy haciendo bien el bucle o podria hacerlo de otra manera.

Espero haya podido explicarme y me puedan ayudar. Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problema array con checkboxes

Publicado por xve (6935 intervenciones) el 25/01/2016 07:51:28
Hola Sebastian, ten en cuenta, que las cajas de texto, unicamente devuelven valor si se han seleccionado, si no, no envia la variable.

Puede ser ese el problema?

Si pruebas ha hacer un
1
echo $sql;
Te pone los valores correctamente?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Problema array con checkboxes

Publicado por Sebastian (35 intervenciones) el 25/01/2016 09:09:23
Gracias por responder.

1
echo @sql;

Me devuelve solo el ultimo registro insertado.

No entiendo cual puede ser el problema, si ingreso dos idiomas se insertar correctamente idiomas_nombre, pero los checkboxes solo algunos y se intercambian entre registros...

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar