Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/07/2005, 12:53
Bit11
 
Fecha de Ingreso: noviembre-2004
Mensajes: 72
Antigüedad: 19 años, 5 meses
Puntos: 0
Resultados diferentes al recorrer 3 arrays

Hola a todos.
La verdad que no sabía como poner el título al post, pero ahora os explico lo que me ocurre.
Tengo una consulta a una bd y de ella saco mediante un while los datos que quiero. Genero una tabla para mostrar un formulario con los datos de la consulta. Para los campos del formulario tengo un checkbox, un campo desplegable y un campo de texto.

Código PHP:
while ($p_acti mysql_fetch_array($result))
{                
echo 
"<tr align='center'>";
echo 
"<td align='left' class='text'><img src='/zona_r/img/espacio.gif' width='10' height='5'>".$p_acti['nombre_promo']."</td>";
echo 
"<td align='right'>";
//remplazamos los caracteres en blanco de la consulta a la bd_promociones, para que el update posterioe a la bd user_promo sea correcta
$p_acti['nombre_promo'] = str_replace(" ","_",($p_acti['nombre_promo']));
echo 
"<input type='checkbox' name= 'npromo[]' value= '".($p_acti['nombre_promo'])."'>";
echo 
"</td>";
echo 
"<td align='center'>";
echo 
"<select name='tipo_precio[]' style='font: 11px Arial, Helvetica; height: 18px'>";
echo 
"<option value='' selected>Seleccione</option>";
echo 
"<option value='A'>A</option>";
echo 
"<option value='B'>B</option>";
echo 
"</select>";
echo 
"</td>";
echo 
"<td class='text'>";
echo 
"<input name='porcentaje[]' type='text' size='5' maxlength='5' style='font: 11px Arial, Helvetica; height: 18px'>";
echo 
"(0.00)";
echo 
"</td>";
echo 
"</tr>";

el cliente debe de seleccionar los campos que quiera por filas, es decir de un mismo registro, seleccionará el checkbox, el select y el text. El caso es que intento recoger las variables y no me viene correctamente o no como yo quisiera.
Si en la página de recepción pongo un var_dump para ver lo que me viene, me queda algo como así


Código HTML:
array(3) { [0]=> string(29) "LORENZO" [1]=> string(9) "El_Camino" [2]=> string(8) "La_Parra" } 
array(11) { [0]=> string(0) "" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" [4]=> string(0) "" [5]=> string(0) "" [6]=> string(0) "" [7]=> string(0) "" [8]=> string(1) "A" [9]=> string(1) "B" [10]=> string(1) "A" } 
array(11) { [0]=> string(0) "" [1]=> string(0) "" [2]=> string(0) "" [3]=> string(0) "" [4]=> string(0) "" [5]=> string(0) "" [6]=> string(0) "" [7]=> string(0) "" [8]=> string(4) "0.10" [9]=> string(3) "0.5" [10]=> string(4) "0.14" }
De tal manera que el array que viene de checkbox me trae 3 campos, el segundo me trae 11 y el tercero 11 tambie´n, aunque estos solo deberían de traerme los tres campos correspondientes al primer array, para que luego con un simple bucle pueda recuperar los datos seleccionados.

Podéis explicarme porque ocurre esto?? si el while tiene 11 registros y yo selecciono 3 con el checkbox, porqué me vienen del select y del text los 11 campos?
He buscado en el foro y no he visto nada parecido. Os agradezco vuestra ayuda.

Un saludo.