Foros del Web » Programando para Internet » PHP »

Problema con un Array en un Formulario

Estas en el tema de Problema con un Array en un Formulario en el foro de PHP en Foros del Web. 0k, soy totalmente nuevo en php y tengo esta duda que me trae arriba y abajo desde hace 2 dias he prorgamado un formulario en ...
  #1 (permalink)  
Antiguo 05/08/2005, 18:57
 
Fecha de Ingreso: agosto-2005
Mensajes: 32
Antigüedad: 18 años, 8 meses
Puntos: 0
Problema con un Array en un Formulario

0k, soy totalmente nuevo en php y tengo esta duda que me trae arriba y abajo desde hace 2 dias

he prorgamado un formulario en php usando todo tipo de insercion de datos, text area, drop down list, radio, etc, pero estoy teniendo problemas con los checkboxes, se que su estructura es asi:

Código PHP:
elije a tus animales favoritos:
<
INPUT NAME="checkbox[]" TYPE=CHECKBOX VALUE="Dog">Perro<BR>
<
INPUT NAME="checkbox[]" TYPE=CHECKBOX Value="Cat">Gato <BR>
<
INPUT NAME="checkbox[]" TYPE=CHECKBOX Value="Snake">Serpiente<BR>
<
INPUT NAME="checkbox[]" TYPE=CHECKBOX Value="ferret">Huron<BR
se que de esta manera cuando el script que recibe el formulario recibe el $_POST manda un array a la variable, he hecho un Print_F() y me muestra la array correctamente, pero cuando la quiero mandar a la base de datos la db solo registra el valor "array" el campo a donde llega es un VARCHAR con 255 caracteres, no se si tal vez estoy utilizando mal el valor VARCHAR y valla otra cosa

PD no supe si preguntar esto en php o en base de datos, si es una pregunta que valla en base de datos lo siento podrian moverlo por favor a donde le corresponde?

Gracias por su tiempo
  #2 (permalink)  
Antiguo 05/08/2005, 20:35
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
$_POST es ya un array, tú estás creando una matriz bidimencional; ahora $_POST['algo'] sería un array... es esa matríz la que necesitas recorrer.

Prueba con:
Código PHP:
echo "Recibidos: ";
foreach(
$_POST['checkbox'] as $indice => $valor// recorres
        
echo "<br>$valor"// imprimes 
www.php.net/foreach

- Cuando algo te devuelva la palabra "Array" te esta diciendo que es una matriz, necesitas recorrerla.
- Por lo anterior, tu pregunta esta bien planteada en este foro .

Si tienes problemas solo mencionalos . Un saludo!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 05/08/2005 a las 20:47
  #3 (permalink)  
Antiguo 06/08/2005, 11:44
 
Fecha de Ingreso: agosto-2005
Mensajes: 32
Antigüedad: 18 años, 8 meses
Puntos: 0
0k, muchas gracias por tu respuesta :)

el metodo que estoy usando para imprimir los resultados es por medio de print_f y preferiria usar el de tablas, asi que tengo que investgar como hacerlo por echo y no por print_f, y cuando lo haga voy a intentar con este metodo

esto es un trabajo para la escuela, pero todos los ejemplos vienen con print_f y se me hace muy dificl estar trabajando con print_f, o al menos me gustaria compararlo con el de echo, asi que en cuanto tenga eso listo vuelo a escribir con el resultado obtenido
  #4 (permalink)  
Antiguo 06/08/2005, 13:45
 
Fecha de Ingreso: agosto-2005
Mensajes: 32
Antigüedad: 18 años, 8 meses
Puntos: 0
0k

ya logre hacer eso y la tabla me funciona usando usando echos en lugar de printf, pero sigo sin estar seguro de como usar lo que me has explicado
Código PHP:
<?php      
    
while($row mysql_fetch_array($result)) {
        echo 
'<tr>';
           echo 
'<td>'.$row["forma_id"].'</td>';
           echo 
'<td>'.$row["edad"].'</td>';
           echo 
'<td>'.$row["sexo"].'</td>';
           echo 
'<td>'.$row["pais"].'</td>';
           foreach(
$row['checkbox'] as $indice => $valor);
                echo 
"<td><br>$valor</td>";
                echo
'</tr>'
        
}
    
mysql_free_result($result); 
    
mysql_close($link);
?>
esa es la estructura actual de mi while con el foreach en la tabla de echos
  #5 (permalink)  
Antiguo 06/08/2005, 23:12
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Igual puedes usar printf() --no print_f()--, no hay ningún problema.

... tu pregunta original fue la de cómo RECOJER checkboxes que defines como matríz, pués lo que te dí lo hace. Respecto a lo que dije, haber si me explico mejor:

$_POST es ya una matriz, sus índices o keys --como lo llames-- serán los "names" del formularios. Tú creas uno de esos "names" como una matríz entonces tienes una matriz bidimencional... tienes que recorrerla para encontrar sus valores...

Personalmente este tema lo he mencionado muchas veces; busca por "foreach" en el foro y seguro hayarás muchos ejemplos... te dejo un enlace en donde comparé foreach() con while() y for(): http://www.forosdelweb.com/showpost....2&postcount=12

¿No sabes qué es una matriz?; www.php.net/array

Respecto a tu código... mencioné lo que consultabas en un inicio porque tu código nada tiene que ver con eso... lo que muestras es para desplegar una consulta (donde igual generas una matriz y la recorres) y hagas lo que hagas esta mal el foreach() dentro del while().

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #6 (permalink)  
Antiguo 07/08/2005, 13:19
 
Fecha de Ingreso: agosto-2005
Mensajes: 32
Antigüedad: 18 años, 8 meses
Puntos: 0
0k, ya me he puesto a revisar todo y he encontrado mi error y ya esta mi script funcionando correctamente, gracias por tu ayuda :)
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 05:02.