Foros del Web » Programando para Internet » PHP »

Invalid argument supplied for foreach()

Estas en el tema de Invalid argument supplied for foreach() en el foro de PHP en Foros del Web. hola todos soy nuevo en este fuero queria saber si podrian ayudarme con este codigo se trata de un carrito de compras...que solo corria en ...
  #1 (permalink)  
Antiguo 10/01/2010, 18:38
 
Fecha de Ingreso: enero-2010
Mensajes: 31
Antigüedad: 14 años, 10 meses
Puntos: 0
Invalid argument supplied for foreach()

hola todos soy nuevo en este fuero queria saber si podrian ayudarme con este codigo se trata de un carrito de compras...que solo corria en una lapto donde era q trabajaba ahora q lo subi a unservidor me sale este error Invalid argument supplied for foreach() como puedo hacer para sulucionar esto???
Código php:
Ver original
  1. function eliminar(a)
  2. {
  3. window.location="eliminar_carrito.php?a="+a;
  4. }
  5.  
  6. function revisar_pago()
  7. {
  8.     if (document.form1.tipo_pago[0].checked==false && document.form1.tipo_pago[1].checked==false && document.form1.tipo_pago[2].checked==false)
  9.     {
  10.         alert("Debe ingresar el tipo de pago a realizar")
  11.         return;
  12.     }
  13.    
  14.     if(document.form1.dep.value=='')
  15.     {
  16.         alert("Debe ingresar el numero de deposito o transferencia para finalizar la compra exitosamente")
  17.         return;
  18.     }
  19.    
  20.    
  21.     <?php
  22.         foreach($itemsEnCesta as $k => $v)
  23.         {
  24.             $opRs11="SELECT * FROM inventario WHERE inve_codi_pk=".$k;
  25.             $opRs1=mysql_query($opRs11,$link) or die(mysql_error());
  26.             $row1=mysql_fetch_array($opRs1);
  27.            
  28.             if($v > $row1['inve_prod_cantidad'])
  29.             {
  30.         ?>
  31.                 alert("la cantidad de <?php echo $v.' '.$row1['inve_nombre'].' supera a la cantidad disponible de '.$row1['prod_cantidad'].' unidades, disminuya la cantidad para finalizar la compra'; ?>");
  32.                 return;
  33.   <?php     }
  34.                
  35.  
  36.         } ?>
  37.        
  38.         document.form1.submit()
  39.    
  40. }
  41.  
  42. function inicio()
  43. {
  44.     <?php
  45.     if($_SESSION['id_usuario']!="")
  46.     {
  47.     ?>
  48.         document.getElementById('tabla').getElementsByTagName('tr')[11].style.display="none";
  49.         document.getElementById('tabla').getElementsByTagName('tr')[12].style.display="none";
  50.         document.getElementById("paypal2").style.display = "";
  51.     <?php  
  52.     }
  53.     ?>
  54. }
  55.  
  56. function deposito()
  57. {
  58.     if(document.form1.tipo_pago[0].checked==true)
  59.     {
  60.         document.getElementById('tabla').getElementsByTagName('tr')[11].style.display="none";
  61.         document.getElementById('tabla').getElementsByTagName('tr')[12].style.display="none";
  62.         document.getElementById("paypal2").style.display = "";
  63.     }
  64.    
  65.     if(document.form1.tipo_pago[1].checked==true)
  66.     {
  67.         document.getElementById('tabla').getElementsByTagName('tr')[11].style.display="";
  68.         document.getElementById('tabla').getElementsByTagName('tr')[12].style.display="";
  69.         document.getElementById("paypal2").style.display = "none";
  70.     }
  71.    
  72.     if(document.form1.tipo_pago[2].checked==true)
  73.     {
  74.         document.getElementById('tabla').getElementsByTagName('tr')[11].style.display="";
  75.         document.getElementById('tabla').getElementsByTagName('tr')[12].style.display="";
  76.         document.getElementById("paypal2").style.display = "none";
  77.     }
  78.    
  79.     if(document.form1.tipo_pago[3].checked==true)
  80.     {
  81.         document.getElementById('tabla').getElementsByTagName('tr')[11].style.display="";
  82.         document.getElementById('tabla').getElementsByTagName('tr')[12].style.display="";
  83.         document.getElementById("paypal2").style.display = "none";
  84.     }
  85.    
  86.  
  87.    
  88.    
  89. }
  90.  
  91. </script>

no coloco todo el codigo por que es muy grabde son mas de 500 lineas
  #2 (permalink)  
Antiguo 10/01/2010, 22:18
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Invalid argument supplied for foreach()

La variable $itemsEnCesta parece ser que no es un array te sugiero que hagas un var_dump() a la variable para que verifiques que información tiene.
Código PHP:
Ver original
  1. var_dump($itemsEnCesta);
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 11/01/2010, 00:01
 
Fecha de Ingreso: enero-2010
Mensajes: 31
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Invalid argument supplied for foreach()

hola abimaelrc hice lo q me dijiste y me dice que el valor es null...pero yo antes no tenia problema con ese foreach en local todo funcionaba bien hasta q lo subi al server e importe los datos a mi pc q me dice ese error... como hago para q $itemsEnCesta sea un array y no altere la funcion o debo desactivar algun parametro en el php.ini???... $itemsEnCesta = session_register('itemsEnCesta')
  #4 (permalink)  
Antiguo 11/01/2010, 13:34
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Invalid argument supplied for foreach()

La respuesta ya la tienes, busca desde esa variable la información que estas tratando de almacenar y verifica que esta pasando
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 11/01/2010, 13:43
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Invalid argument supplied for foreach()

de donde sacas la variables $itemsEnCesta ? por que si antes te funcionaba lo unico que se me ocurre es que la estes tomando de la url, y que ahora estes en un host con los register globals = off

si es ese el caso cambia $itemsEnCesta por $_GET["itemsEnCesta"]

saludos


PD: eso me pasa por apresurado.. no tomes en cuenta mi consejo.. no puedes pasar un array directo por url =B...
__________________
More about me...
~ @rhyudek1
~ Github
  #6 (permalink)  
Antiguo 11/01/2010, 19:09
 
Fecha de Ingreso: enero-2010
Mensajes: 31
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Invalid argument supplied for foreach()

$itemsEnCesta la saco de: session_register('itemsEnCesta');....pero tengo carrito_compras.php q me redirecciona a agregar_carrito.php que es donde tengo el error...pero en carrito_compras.php tengo un foreach y hago var_dump y si me imprime el dato como un array ....no parece ser algo de el php.ini si no de sintaxis...tengo un problema en agregar_carrito.php...el archivo tiene casi 18000 caracteres y no puedo subirlo.. como puedo mostrarlo... no se pueden adjuntar archivos en el foro?? de verdad no se que hacer..estoy trabado de tanto ver el codigo no avanzo..gracias por responder al tema

Etiquetas: foreach, 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 08:30.