Foros del Web » Programando para Internet » PHP »

arrays

Estas en el tema de arrays en el foro de PHP en Foros del Web. estoy armando un carrito de compras.. y estoy llevando los POST así... Código PHP: $cantidad = 'cantidad' ; < input type = text name = trabajos [ ...
  #1 (permalink)  
Antiguo 30/08/2004, 22:09
 
Fecha de Ingreso: julio-2004
Ubicación: Arg. Neuquén
Mensajes: 44
Antigüedad: 13 años, 5 meses
Puntos: 0
Pregunta arrays

estoy armando un carrito de compras.. y estoy llevando los POST así...
Código PHP:
$cantidad='cantidad';
<
input type=text name=trabajos[".$indice."][$cantidadsize=class=boton1
mi pregunta, como hago para chekear en el post la cantidad por que así como lo hago abajo.. no sale... no trae ningun valor..
Código PHP:
session_start();
 
/*carrito de compras*/
 
include("class/carrito.php");
 
session_register('itemsEnCesta'); 
 
$carrito =& $_SESSION['carrito'];
 
$fotos=$_POST['img_id'];
 
$cantidad=$_POST['cantidad'];
 
$tamano=$_POST['checkbox']; 
si, soy nuevo en php. es mi 1º "intento" de carrito. cualquier ayuda puede servir..
  #2 (permalink)  
Antiguo 30/08/2004, 22:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Con respecto al uso de sesiones .. tienes un gran lio ..

o usas $_SESSION o usas session_register() .. pero no ambos métodos (usa preferentemente el array superglobal $_SESSION no session_register()

Por lo demás .. no entiendo que valores y donde toma ese "trabajos" y esa "cantidad" .. (¿se supone que la cantidad es el valor que se toma desde ese campo "trabajo"? .. o como?)

Sería recomendable que pusieras el código completo que usas ..

Un saludo,
  #3 (permalink)  
Antiguo 31/08/2004, 07:38
 
Fecha de Ingreso: julio-2004
Ubicación: Arg. Neuquén
Mensajes: 44
Antigüedad: 13 años, 5 meses
Puntos: 0
(fotos.php)
Código PHP:
<?
//user para que muestre solo las fotos del usuario logeado
$sqluser=$HTTP_SESSION_VARS['user_email'];
?>

<?
if ($HTTP_POST_VARS['Confirmar']) {
    
$link mysql_connect($base_servidor$base_usuario$base_clave)
    or die(
"Error en la base de datos : " mysql_error());
     
mysql_select_db($base_datos) or die("Error al conectarse a la base");
  
var_dump($_POST);
    for(
$k=0;$k<count($HTTP_POST_VARS['trabajos']);$k++){
        if (
$HTTP_POST_VARS["trabajos"][$k]['cantidad']){
                
$query "insert into trabajos (user, archivo, tamano, cantidad) values ('".$sqluser."', '".$HTTP_POST_VARS["trabajos"][$k]["id"]."', '".$HTTP_POST_VARS["trabajos"][$k]["checkbox"]."', '".$HTTP_POST_VARS["trabajos"][$k]["cantidad"]."')";
                
$result mysql_query($query) or die("Error Guardando los datos : " mysql_error());    
        }
    }
?>
<div>
Gracias por hacer su pedido.<br><br>

<a href='<?echo $destino?>&action=fotos'>Volver</a>

</div>

<? } else { ?>


<?
  $link 
mysql_connect($base_servidor$base_usuario$base_clave);
  
mysql_select_db($base_datos) or die("Error al conectarse a la base");
  
$query "select * from size";
  
$result1 mysql_query($query);
  
$row2 mysql_fetch_array($result1);

  if (!isset(
$HTTP_GET_VARS["desde"])) {
  
$desde=0;
  } else { 
$desde $HTTP_GET_VARS["desde"]; }
  
$query "select * from imagenes WHERE img_cliente='$sqluser' ORDER BY img_id ASC LIMIT $desde,15";
  
$query "select * from imagenes WHERE img_cliente='$sqluser' ORDER BY img_id ASC LIMIT $desde,10";
  
$query "select * from imagenes WHERE img_cliente='$sqluser' ORDER BY img_id ASC LIMIT $desde,15";
  
$result mysql_query($query);
  
$quants=mysql_num_rows($result);
  echo 
"<div align=center><h4>Hace tu pedido indicando la cantidad de copias y las dimensiones que desearía de cada una</h4></div><br>";
  echo 
"<table border=0 align=center valign=top cellpadding=2 cellspacing=1 width=95%>";
  echo 
"<form action='".$destino."&action=fotos' method=post>";
  
$indice=0;
  
$indicezc=0;
  
$contador=1;
  while (
$row mysql_fetch_array($result))
 {
        if (
$contador==1){
           echo 
"<tr>\n";
        }
        echo 
"<td><strong>Nombre:</strong>".$row['img_nombre']."<strong><br>Tamaño:</strong>".$row['img_info']." bytes<br>";
        
$tmpar="thumb.php?archivo=".$row['img_archivo']."&nombre=".$row['img_nombre'];
        
$id=$row['img_id'];
        
$cantidad='cantidad';
        
$imgid='id';
        
$ck='checkbox';
        echo 
"<br><div align=center><img src=\"".$tmpar."\" border=1></div>";
        echo 
"<br><input type=text name=trabajos[".$indice."][$cantidad] size=1 class=boton1><input type=hidden name=\"trabajos[".$indice."][$imgid]\" value=\"".$id."\"> Cantidad de copias<br><input type=radio name=trabajos[".$indice."][$ck] value=1>".$row2['tm1']." $".$row2['pr1']."<br><input type=radio name=trabajos[".$indice."][$ck] value=1>".$row2['tm2']." $".$row2['pr2']."<br><input type=radio name=trabajos[".$indice."][$ck] value=1>".$row2['tm3']." $".$row2['pr3']."<br><input type=radio name=trabajos[".$indice."][$ck] value=1>".$row2['tm4']." $".$row2['pr4']."<br></td>";
        
$contador++;
        
$indice++;
        if (
$contador==4){
             
$contador=1;
             
$fin=true;
             echo 
"</tr>\n";
       }
  }
  if (!
$fin){
      while (
$contador 4) {
             echo 
"<td>&nbsp;</td>\n";
             
$contador ++;
      }
  }
       echo 
"</tr></table>";
       echo 
"<br><div align=center><input name=Carro type=submit value='Agregar al Carro' class=boton4> | <input name=Pedido type=submit value='Ver Pedido' class=boton3></form></div>";


echo 
"Más Imágenes en la página ";
$pag=1;
FOR (
$i=0$i$quants$i=$i+10) {
IF (
$desde==$i
   { echo 
" - <a href='index.php?".SID."&action=fotos&desde=".$i."'>[<B>".$pag."</B>]</a>"; }
   ELSE 
  { echo 
" - <a href='index.php?".SID."&action=fotos&desde=".$i."'>[".$pag."]</a>"; }
$pag=$pag+1;
}
$desde=$desde+10;
}

?>
aca está el código completo.
cuando yo pongo $_post['cantidad']
para q agregue al carrito no trae ningun valor..
  #4 (permalink)  
Antiguo 31/08/2004, 11:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Y donde haces session_start() ? .. debes usarlo antes de pretender acceder a una variable de sesión (vía $HTTP_SESSION_VARS o $_SESSION que es lo que deberías usar).

El tema de los arrays como nombre de tus campos input .. no sé como andará este tipo de estructura:
trabajos[".$indice."][$cantidad]

pero .. si así funcionase .. no podrías recoger su valor por:

$_POST['cantidad']

En tal caso

$_POST[indice][cantidad]

Deberías usar un array para tu "indice" (tu producto) y otro para la cantidad. Ambos indices serían iguales pero no sus valores .. puedes usar campos hidden para asociar más datos a tu "registro" para el "carrito" ..

Ejemplo (para añadir N productos a tu carrito de una vez)

bucle (inicio){
<input type="hidden" name="producto[]" value="<? echo $id_producto ?>">
<input type="text" name="cantidad[]">
}

y en PHP recibiras un array en producto ($_POST['producto']) y otro en cantidad ($_POST['cantidad']) que puedes leer usando como mismo indice:

Código PHP:
for ($indice=0$indice count ($_POST['producto']) ; $indice++){
   echo 
$_POST['producto'][$indice];
   echo 
$_POST['cantidad'][$indice];

Esos mismos arrays producto y cantidad podrías llevarlos a una sesión ($_SESSION['carrito_cantidad']=$_POST['cantidad']; .. y la otra ..) o crear un array bidimensional .. o como gustes) para seguir trabajando el "carrito" cada vez que añadas más elmentos a ese array(s) que es lo que es en definitiva un "carrito".

Un saludo,
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 00:44.