Foros del Web » Programando para Internet » PHP »

Warning: Invalid argument supplied for foreach() en IE

Estas en el tema de Warning: Invalid argument supplied for foreach() en IE en el foro de PHP en Foros del Web. Hola, tengo una funcion que me rellena los campos de un formulario para una opcion elegida. El código es así: Código PHP: ... $consulta  =  ...
  #1 (permalink)  
Antiguo 10/03/2011, 02:43
 
Fecha de Ingreso: octubre-2010
Mensajes: 103
Antigüedad: 13 años, 5 meses
Puntos: 0
Warning: Invalid argument supplied for foreach() en IE

Hola, tengo una funcion que me rellena los campos de un formulario para una opcion elegida.

El código es así:

Código PHP:

...

$consulta $objeto->consultar($w_registro);
$row mysql_fetch_row($consulta);
    
foreach(
$row as $dato){
    if(
htmlentities($dato,ENT_QUOTES,"UTF-8") == NULL)
        
$dato "vacio";
    
$datos .= htmlentities($dato,ENT_QUOTES,"UTF-8") . ",";
}

... 
El script funciona bien tanto en el chrome, como en Mozilla. Pero para nuestro amigo IE me da el Warning: Invalid argument supplied for foreach()

Alguien sabe porque??

Gracias.
  #2 (permalink)  
Antiguo 10/03/2011, 03:21
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: Warning: Invalid argument supplied for foreach() en IE

Lo más probabale tengas algún error en el formulario desde el que mandas el valor.

Si $w_registro lo pones "a mano" en el código no debería pasar.
  #3 (permalink)  
Antiguo 10/03/2011, 03:44
 
Fecha de Ingreso: octubre-2010
Mensajes: 103
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Warning: Invalid argument supplied for foreach() en IE

Cita:
Iniciado por cluster28 Ver Mensaje
Lo más probabale tengas algún error en el formulario desde el que mandas el valor.

Si $w_registro lo pones "a mano" en el código no debería pasar.
Pero, no deberia fallar entonces en cualquier navegador?
  #4 (permalink)  
Antiguo 10/03/2011, 03:54
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: Warning: Invalid argument supplied for foreach() en IE

El Warning dice que el argumento pasado al foreach es inválido, lo que significa que la consulta no devuelve nada.

Si el parámetro de la consulta se envía por POST o GET desde un formulario, puede que con IE no se envíe bien. Hay algunos navegadores que corrigen los "fallos".

Por eso digo que si, para probar, pones el parámetro en el código no debería fallarte. Con lo que certificas que es problema del formulario.

Puede hacer un print_r($_POST) o print_r($_GET) para ver lo que llega del formulario.

Si no usas un formulario dime cómo lo haces.
  #5 (permalink)  
Antiguo 10/03/2011, 04:05
 
Fecha de Ingreso: octubre-2010
Mensajes: 103
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Warning: Invalid argument supplied for foreach() en IE

Ok, voy a comprobarlo. Gracias. :)
  #6 (permalink)  
Antiguo 10/03/2011, 04:43
 
Fecha de Ingreso: octubre-2010
Mensajes: 103
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Warning: Invalid argument supplied for foreach() en IE

Ya he mirado eso. Parece que si que cuando escribo, el registro "a mano" no da fallo. Pero en el formulario, no lo encuentro. En el firebug, uso console.debug() para ir siguiendo la variable y parece correcta. Hay alguna herramienta parecida para Explorer??
  #7 (permalink)  
Antiguo 10/03/2011, 05:03
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: Warning: Invalid argument supplied for foreach() en IE

No se si hay lo mismo para explorer. Pero es más fácil si haces print_r($_POST) o print_r($_GET) y ves el valor que llega al script.
  #8 (permalink)  
Antiguo 10/03/2011, 05:39
 
Fecha de Ingreso: octubre-2010
Mensajes: 103
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Warning: Invalid argument supplied for foreach() en IE

Muchas gracias! ya esta arreglado :)
  #9 (permalink)  
Antiguo 10/03/2011, 05:41
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: Warning: Invalid argument supplied for foreach() en IE

Cita:
Iniciado por Krlinhos_ Ver Mensaje
Muchas gracias! ya esta arreglado :)
Si puedes explica la solución.

Un saludo.
  #10 (permalink)  
Antiguo 10/03/2011, 10:52
 
Fecha de Ingreso: octubre-2010
Mensajes: 103
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Warning: Invalid argument supplied for foreach() en IE

A ver, yo tengo una tabla con los distintos registros de la base de datos. Por cada registro yo tenia dos enlaces, modificar y eliminar, con el atributo href así, href= "registro1".
Luego cuando hacia click sobre alguno de ellos, w_registro tomaba su valor asi:

w_registro = $(this).attr("href");

Claro esto hacia que w_registro valiese "localhost/web/registro1" en vez de registro1 como yo queria.
Puse el atributo title para cada <a> y listo. Ahora:

w_registro = $(this).attr("title");

:)

Supongo que será una chapuza, pero la verda que no se como tomar el valor que este escrito entre las etiquetas <a></a> :S

Asi que me ayudo de sus atributos, que si se como acceder.

Saludos.
  #11 (permalink)  
Antiguo 10/03/2011, 10:57
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: Warning: Invalid argument supplied for foreach() en IE

Vale. Osea que usas JQuery, no lo has dicho en ningún momento. De ahí lo del "console.debug()" que dicesde Firebug, pero a mí no me ha orientado nada....

Gracias.

Etiquetas: foreach, warning, argumentos
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:05.