Foros del Web » Programando para Internet » PHP »

Actualizar campos en sessiones

Estas en el tema de Actualizar campos en sessiones en el foro de PHP en Foros del Web. Tengo problemas con actualizar un o mas input en un formulario, q está de esta manera: ---------------------------------------------------- item--articulo--cantidad--precio---actualizar--eliminar ---------------------------------------------------- ...1...ALGO........2..............1500......[A]...........[E].. ...2...ALGO2.......1..............2000.....[A]...........[E].. ...3...VASO........3..............500.......[A]...........[E].. los cuales lo ...
  #1 (permalink)  
Antiguo 08/08/2006, 18:50
 
Fecha de Ingreso: abril-2003
Mensajes: 201
Antigüedad: 14 años, 8 meses
Puntos: 0
Actualizar campos en sessiones

Tengo problemas con actualizar un o mas input en un formulario, q está de esta manera:

----------------------------------------------------
item--articulo--cantidad--precio---actualizar--eliminar
----------------------------------------------------
...1...ALGO........2..............1500......[A]...........[E]..
...2...ALGO2.......1..............2000.....[A]...........[E]..
...3...VASO........3..............500.......[A]...........[E]..

los cuales lo voy agregando uno a uno (sin bd) con sessiones, para eliminar no tengo problemas , lo hago asi:
Código PHP:
<?php 
session_start
();
$item=$_GET['item'];
unset (
$_SESSION['articulo'][$item]);
unset (
$_SESSION['cantidad'][$item]);
unset (
$_SESSION['precio'][$item]);
header("Location:COTI.php");
?>
necesito saber como puedo actualizar un item, por ejemplo la cantidad o modificar el nombre del articulo

Gracias
  #2 (permalink)  
Antiguo 08/08/2006, 19:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Por algùn lado en tu "carrito de compra" tendrás que generar un link hacia tu script de actualización .. donde obtendras ese $item y de ahí podras tratar ese array que en el fondo es lo que es $_SESSION como tal.

Código PHP:
$_SESSION['cantidad'][$item] = "nueva cantidad"
Como presentas lo datos de tu sesión (carrito) .. generas ya ese link que te comento? es decir, tienes claro e identificado el $item a editar?

(modificar el nombre del artìculo? .. no corresponde .. en ese caso elimina el artículo y crea uno nuevo .. Otro dato que te interesaría serìa algùn "ID" de ese artículo o código para una referencia màs exacta ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 08/08/2006, 20:02
 
Fecha de Ingreso: abril-2003
Mensajes: 201
Antigüedad: 14 años, 8 meses
Puntos: 0
Gracias Cluster,
uff creo q me estoy complicando, resulta q coloko un input de cantidad , pero nose como enviarlo... al hacerlo por url tengo ese input vacio o lo puedo evaluar con el que ingresé con lo cual no actualizo ná, osea como lo haria para enviarlo este input y no enviar el form completo.
Código PHP:
<?php 
session_start
();
$item=$_GET['item'];
$q=$_GET['q'];
$_SESSION['cantidad'][$item] =$q;
header("Location:COTI.php");
exit;
?>
Gracias
  #4 (permalink)  
Antiguo 08/08/2006, 20:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si expones todo el còdigo que usas serìa lo ideal .. sobre todo ese "input" que hablas y el formulario que lo contiene (para ver su "method" que supongo que será POST y no GET como pretendes usarlo ahì).

Por cierto .. con PHP sin enviar todo por completo no puedes hacerlo .. a lo sumo levantando una ventana o usando algùn iframe/frame oculto para trabajar ahì la peticiòn al servidor para verificar tus variables de sesiòn que -están en el servidor-

un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 08/08/2006, 20:25
 
Fecha de Ingreso: abril-2003
Mensajes: 201
Antigüedad: 14 años, 8 meses
Puntos: 0
Cluster este es mi codigo (medio cavernicola no mas)

Código PHP:
<?php 
session_start
();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Form Coti</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
  <table width="100%" border="0" cellspacing="3" cellpadding="0">
    <tr>
      <th colspan="8">COTI</th>
    </tr>
    <tr>
      <td colspan="3"><strong>SE&Ntilde;ORES</strong></td>
      <td colspan="5"><input name="seniores" type="text" id="seniores" size="60" /></td>
    </tr>
    <tr>
      <td colspan="3"><strong>ATENCI&Oacute;N</strong></td>
      <td colspan="5"><input name="atencion" type="text" id="atencion" size="60" /></td>
    </tr>
    <tr>
      <td colspan="8"><strong>RESUMEN</strong></td>
    </tr>
    <tr>
      <td colspan="8" align="center"><textarea name="resumen" cols="120" id="resumen"></textarea></td>
    </tr>
    <tr>
      <td colspan="8">&nbsp;</td>
    </tr>
    <tr>
      <th>Item</th>
      <th>Articulo</th>
      <th>N&ordm; Parte</th>
      <th>Cantidad</th>
      <th>Precio</th>
      <th>Total</th>
      <th>Actualizar</th>
      <th>Eliminar</th>
    </tr>
    <!--ini bucle items -->
    <?php 
$count
=1;
foreach(
$_SESSION['articulo'] as $k=>$valor){
    echo 
"<tr>";
    echo    
'<td>'.$count++.'</td>';
    echo    
'<td><input name="articulo" type="text" id="articulo" size="50" value="'.$_SESSION['articulo'][$k].'" /></td>';
    echo     
'<td><input name="np" type="text" id="np" value="'.$_SESSION['np'][$k].'" /></td>';
    echo    
'<td><input name="cantidad" type="text" id="cantidad" size="4" value="'.$_SESSION['cantidad'][$k].'" /></td>';
    echo    
'<td><input name="precio" type="text" id="precio" size="10" value="'.$_SESSION['precio'][$k].'" /></td>';
    
$pxq=$_SESSION['cantidad'][$k]*$_SESSION['precio'][$k];
    echo    
'<td>'.$pxq."</td>";
    echo    
'<td><a href="COTI_ACTU.php?item='.$k.'&cantidad=">A</a></td>';
    echo    
'<td><a href="COTI_DEL.php?item='.$k.'">E</a></td>';
    echo 
"</tr>\n";
    
$total+=$pxq;
    
}
?>
    <!--fin bucle items -->
    <tr>
      <td colspan="4">&nbsp;</td>
      <td>Total</td>
      <td colspan="3"><strong><?php echo $total?></strong></td>
    </tr>
    <tr>
      <td colspan="8">Nota</td>
    </tr>
    <tr>
      <td colspan="8" align="center"><textarea name="nota" cols="120" id="nota"></textarea></td>
    </tr>
    <tr>
      <td colspan="7">&nbsp;</td>
      <td><input type="submit" name="Submit" value="Enviar" /></td>
    </tr>
  </table>
</form><br />
<form id="form2" name="form2" method="post" action="COTI_ADD.php">
  <table width="100%" border="0" cellspacing="3" cellpadding="0">
    <tr>
      <td>Articulo</td>
      <td>N&ordm; Parte </td>
      <td>Cantidad</td>
      <td>Precio</td>
    </tr>
    <tr>
      <td><input name="articulo" type="text" id="articulo" size="50" /></td>
      <td><input name="np" type="text" id="np" /></td>
      <td><input name="cantidad" type="text" id="cantidad" size="4" /></td>
      <td><input name="precio" type="text" id="precio" size="10" /></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td><input type="submit" name="Submit" value="Agregar Articulo" /></td>
    </tr>
  </table>
</form>
</body>
</html>
agradesco tu ayuda Cluster
como ves el codigo , se van agragando uno a uno los articulos en el form de abajo para ir mostrandolos en el form de arriba y poder enviarlo finalmente para q en ese momento sean ingresado a una bd...

nose si me explico bien :S

pongo una imagen del codigo:


Gracias
  #6 (permalink)  
Antiguo 08/08/2006, 21:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En tu link de actualización .. tienes tu "item" por tu variable de sesiòn que ya tienes en PHP y dejas en el llink tipo:
Código PHP:
'<td><a href="COTI_ACTU.php?item='.$k.'&cantidad=">A</a></td>'
Pero, .. no pasas la cantidad escrita en tu "input" a ese link .. eso lo debes hacer con javascript no con PHP .. algo tipo (no sé si es del todo correcto .. verificalo en el foro de javacript):

Código PHP:
'<td><a href="COTI_ACTU.php?item='.$k.'&cantidad=+form1.cantidad.value'</a></td>; 
Tambien serìa bueno que pasases ese proceso por un "target" (de tu COTI_ACTU.php) a un frame oculto o iframe oculto .. para que no se "recargue la pàgina" .. (esto se denomina "Remote Scripting").

Por lo demás te insisto:
Cita:
Por cierto .. con PHP sin enviar todo por completo no puedes hacerlo .. a lo sumo levantando una ventana o usando algùn iframe/frame oculto para trabajar ahì la peticiòn al servidor para verificar tus variables de sesiòn que -están en el servidor-
A eso le llaman tècnicas de "remote scripting" .. y ahora està de moda algo similar (pero mejor) que se denomina "Ajax" (tenemos un foro para tal fin, vistalo) .. Asì veras como usar (o llamar mejor dicho) a tus scritps PHP de gestiòn de datos sobre tu sesión sin una recarga de página completa (pues el dato viaja "por debajo" en una comunicacion "asincrona" gracias a cierto objeto de ciertos navegadores).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 08/08/2006 a las 21:12
  #7 (permalink)  
Antiguo 09/08/2006, 12:57
 
Fecha de Ingreso: abril-2003
Mensajes: 201
Antigüedad: 14 años, 8 meses
Puntos: 0
Gracias Cluster,
Lo de javascript no me resulto, asi ke vere la forma de aprender AJAX para hacer esto, como recomiendas, buscando en el foro encontre esta pagina http://fastboss.com/ y kede marivallado de todo lo q hace este sistema, para mi proyecto es mucho, pero es interezante ese manejo de javascript con php.

Gracias por tu ayuda :)
  #8 (permalink)  
Antiguo 09/08/2006, 13:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Lo de javascript no me resulto,
Consulta ese tema concreto en el foro de javascript .. el tema va por ahí ...

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 08:11.