Foros del Web » Programando para Internet » PHP »

Problemas con foreach() ?

Estas en el tema de Problemas con foreach() ? en el foro de PHP en Foros del Web. hola amigos saben ke tengo problemas con foreach(): este es mi codigo: Código PHP: <?php include ( "conexion.php" ); echo  "<form action=\"listo.php\" method=\"post\"> \n" ; echo  "ID's Seleccionados:<br>" ; echo  ...
  #1 (permalink)  
Antiguo 26/10/2003, 08:12
 
Fecha de Ingreso: abril-2003
Ubicación: 127.0.0.1
Mensajes: 359
Antigüedad: 21 años
Puntos: 0
Pregunta Problemas con foreach() ?

hola amigos saben ke tengo problemas con foreach():
este es mi codigo:

Código PHP:
<?php

include ("conexion.php");
echo 
"<form action=\"listo.php\" method=\"post\"> \n";
echo 
"ID's Seleccionados:<br>";
echo 
"<br>";
foreach (
$_POST['seleccion'] as $id){
    echo 
$id"<br>";
}
echo 
"Seguro que desea borrar estos registros? \n";
echo 
"<table border='0'> \n";
echo 
"<tr> \n";
echo 
"<td><input type=\"submit\" name=\"Submit\" value=\"Enviar\"></td> \n";
echo 
"</tr> \n";
echo 
"</table> \n";
echo 
"</form> \n";
?>
Y me sale el siguiente mensaje:

Warning: Invalid argument supplied for foreach() in c:\program files\nusphere\apache\htdocs\procesar.php on line 8

que puede ser....
__________________
Practicando se Aprede
:-) :-)
  #2 (permalink)  
Antiguo 26/10/2003, 14:21
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Eso es debido a que el parametro debe ser un array. Y puede que en tu caso $_POST['seleccion'] no sea un array. Puede que no exista esa variable en $_POST (no se ha seleccionado nada). O puede que no hayas nombrado los campos como un array (con seleccion[]).

Mejor pon el foreach dentro de un if:
Código PHP:
if (is_array($_POST['seleccion'])) {
  foreach (
$_POST['seleccion'] as $id){
    echo 
$id"<br>";
  }

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 26/10/2003, 14:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ese error te está diciendo que tu variable $_POST['seleccion'] no es un array o bien no seleccionastes ningun checkbox.

Revisa tu formulario de origen donde produces esos checkbox de nombre "seleccion[]" y mira si los envias por el método POST .. ademas de revisar sun sintax y nombre correcto, y acuerdate de seleccionar 1 al menos .. De todas formas tienes la función is_array() para componer tu IF y preguntar antes si esa variabel es un array antes de entrar a tu bucle foreach() para "capturar" ese error antes de que se pueda producir (o por ejemplo simplemente para decir algo tipo "No seleccionó ningun registro. Al menos uno es requerido .." ..


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 11:30.