Foros del Web » Programando para Internet » PHP »

agregar filas con sesiones?

Estas en el tema de agregar filas con sesiones? en el foro de PHP en Foros del Web. hola compañeros. solo para preguntar: he intentado hacer que un usuario agrege y quite filas de una tabla n veces lo estoy haciendo con sesiones ...
  #1 (permalink)  
Antiguo 31/08/2005, 12:20
Avatar de The_omars  
Fecha de Ingreso: marzo-2004
Mensajes: 271
Antigüedad: 13 años, 9 meses
Puntos: 0
agregar filas con sesiones?

hola compañeros.

solo para preguntar:

he intentado hacer que un usuario agrege y quite filas de una tabla n veces
lo estoy haciendo con sesiones pero realmente no me sale he tomado como ejemplo este codigo:

Código PHP:
session_start(); 
session_register('itemsEnCesta'); 
$item=$_POST['item']; 
$cantidad=$_POST['cantidad']; 
echo $itemsEnCesta=$_SESSION['itemsEnCesta']; 

if ($item){ 
   if (!isset($itemsEnCesta)){ 
      $itemsEnCesta[$item]=$cantidad; 
   }else{ 
      foreach($itemsEnCesta as $k => $v){ 
         if ($item==$k){ 
         $itemsEnCesta[$k]+=$cantidad; 
         $encontrado=1; 
         } 
      } 
      if (!$encontrado) $itemsEnCesta[$item]=$cantidad; 
   } 

$_SESSION['itemsEnCesta']=$itemsEnCesta; 
?> 
<html> 
<body> 
<tt> 
<form action="consulta2.php" method="post"> 
Dime el producto <input type="text" name="item" size="20"><br> 
Cuantas unidades <input type="text" name="cantidad" size="20"><br> 
<input type="submit" value="Anadir a la cesta"><br> 
</form> 
<? 
if (isset($itemsEnCesta)){ 
   echo
'El contenido de la cesta de la compra es:<br>'
   foreach(
$itemsEnCesta as $k => $v){ 
      echo 
'Articulo: '.$k.' ud: '.$v.'<br>'
   } 
}
lo he estado probando pero no llego a mi objetivo.

lo unico que quiero hacer es que de una tabla, el usuario agrege una fila
con sessiones.



ejemplo:

------------------------
tabla
------------------------
Columna por defoul
------------------------

__________________
agregar fila a la tabla| /// Boton
__________________|


no se si tengan algun ejemplo

por su ayuda gracias
  #2 (permalink)  
Antiguo 31/08/2005, 13:34
Avatar de rmilano  
Fecha de Ingreso: abril-2002
Ubicación: Mexico DF
Mensajes: 150
Antigüedad: 15 años, 8 meses
Puntos: 0
No veo cual es el problema con el script presentado... y no se entiende bien que es lo que quieres hacer....
__________________
Rodolfo Milano Oliveros
www.todohosting.com.mx
Especialista Sistemas de Información
  #3 (permalink)  
Antiguo 31/08/2005, 13:46
Avatar de The_omars  
Fecha de Ingreso: marzo-2004
Mensajes: 271
Antigüedad: 13 años, 9 meses
Puntos: 0
prueba esto es lo que quiero hacer:

Código PHP:
<?
session_start
();
session_register("col");
if(isset(
$_POST['dato'])){
$dato=$_POST['dato'];
}
$sesion_item=$_SESSION["col"];

if(isset(
$dato)){
if(!isset(
$sesion_item)){
$sesion_item[]=1;
}else{
//fin de si no existe
$sesion_item[]=1
//fin del else
}// fin de si dato
$_SESSION["col"]=$sesion_item;
?>
<script>
function hey(){
document.forms[0].action="consulta2.php";
document.forms[0].submit();
}
</script>
<function>
<table border="1">
<th>EJE</th>
<tr><td><input type="text"><td><input type="text">
<? if(isset($sesion_item)){
foreach(
$sesion_item as $k =>$v){
 echo 
"<tr><td><input type=text><td><input type=text>";
}
}
?>
</table>
<form method="post">
<input type="hidden" name="dato" value="8">
<input type="button" onClick="hey()" value="Agregar">
</form>
habra una forma mas ortodoxa de hacerlo?

Última edición por The_omars; 31/08/2005 a las 14:10
  #4 (permalink)  
Antiguo 01/09/2005, 07:45
Avatar de The_omars  
Fecha de Ingreso: marzo-2004
Mensajes: 271
Antigüedad: 13 años, 9 meses
Puntos: 0
He logrado otro avance

Que tal he logrado agregar filas con sesiones pero no se como quitarlas.
al momento de quitar una con UNSET() solo me desactiva una y las demas no y al momento de agregar despues de haber quitado una me agrega el doble

aquie esta el codigo

Código PHP:
<?
session_start
();
session_register("col");
if(isset(
$_POST['dato'])){
$dato=$_POST['dato'];
}
$sesion_item=$_SESSION["col"];

if(isset(
$dato)){
if(!isset(
$sesion_item)){
$sesion_item[]=1;
}else{ 
$sesion_item[]=0;}
}
// fin de si dato
$_SESSION["col"]=$sesion_item;
?>
<script>
function hey(){
document.forms[0].action="consulta2.php";
document.forms[0].submit();
}
function oculta(este){
v=este.id
document.all['id_borra'].value=v;
document.forms[1].action="consulta2.php"
document.forms[1].submit();
}
</script>
<function>
<? 
if(isset($_POST['id_borra'])){
$key=$_POST['id_borra'];
unset(
$sesion_item[$key]);
}
?>
<table border="1">
<th>EJE</th>
<tr><td bgcolor=blue>&nsub;<td><input type="text"><td><input type="text">
<? if(isset($sesion_item)){
foreach(
$sesion_item as $k =>$v){
 echo 
"<tr><td bgcolor=red id=$k onDblClick='oculta(this)'>elimina<td><input type=text><td><input type=text >";
}
}
?>
</table>
<form method="post">
<input type="hidden" name="dato" value="8">
<input type="button" onClick="hey()" value="Agregar">
</form>

<form method="post">
<input type="text" name="id_borra">
</form>
  #5 (permalink)  
Antiguo 01/09/2005, 09:31
 
Fecha de Ingreso: agosto-2005
Mensajes: 77
Antigüedad: 12 años, 4 meses
Puntos: 0
Hola, yo ando como tú con un carrito de la compra y parece que lo he conseguido pero no entiendo bien tu pregunta. Quizá te podría ayudar (no prometo nada estoy empezando )
  #6 (permalink)  
Antiguo 01/09/2005, 09:47
Avatar de The_omars  
Fecha de Ingreso: marzo-2004
Mensajes: 271
Antigüedad: 13 años, 9 meses
Puntos: 0
ok gracias

mira mi intension es que de una tabla el usuario agrege y quite filas a su antojo por medio de sesines que al momento que el usuario apriete el boton agregar agrege una fila y si le da eliminar la quite claro que todo esto con sesiones ( session_register(), y unset())

realmente con el codigo anterior agrego filas el problema es al momento de querer quitarla,

te invito que corras el codigo del pos anteriror que puse y lo nombres consulta2.php

por tu aportacion gracias.

PD. si tienes algun cacho de tu codigo donde quitas productos me ayudarias muchisimo

gracias

Última edición por The_omars; 01/09/2005 a las 10:07
  #7 (permalink)  
Antiguo 01/09/2005, 10:02
 
Fecha de Ingreso: agosto-2005
Mensajes: 77
Antigüedad: 12 años, 4 meses
Puntos: 0
Hola!
Pues no sé que quieres decir con que corra el post y lo nombre, perdóname.
Yo te puedo mostrar el código de mi carro claro que sí pero está hecho de otra forma diferente. Lo saqué de desarrolloweb y lo modifiqué pues antes usaba este mismo pero no supe dar con ello. Ahí va por partes:
lib_carrito.php:
[PHP<?
class carrito {
//atributos de la clase
var $num_productos;
var $array_id_prod;
var $array_nombre_prod;
var $array_precio_prod;

//constructor. Realiza las tareas de inicializar los objetos cuando se instancian
//inicializa el numero de productos a 0
function carrito () {
$this->num_productos=0;
}

//Introduce un producto en el carrito. Recibe los datos del producto
//Se encarga de introducir los datos en los arrays del objeto carrito
//luego aumenta en 1 el numero de productos
function introduce_producto($id_prod,$nombre_prod,$precio_p rod){
$this->array_id_prod[$this->num_productos]=$id_prod;
$this->array_nombre_prod[$this->num_productos]=$nombre_prod;
$this->array_precio_prod[$this->num_productos]=$precio_prod;
$this->num_productos++;
}

//Muestra el contenido del carrito de la compra
//ademas pone los enlaces para eliminar un producto del carrito
function imprime_carrito(){
$suma = 0;
echo '<table border=1 cellpadding="3">
<tr>
<td><b>Nombre producto</b></td>
<td><b>Precio</b></td>
<td>&nbsp;</td>
</tr>';
for ($i=0;$i<$this->num_productos;$i++){
if($this->array_id_prod[$i]!=0){
echo '<tr>';
echo "<td>" . $this->array_nombre_prod[$i] . "</td>";
echo "<td>" . $this->array_precio_prod[$i] . "</td>";
echo "<td><a href='eliminar_producto.php?linea=$i'>Eliminar producto</td>";
echo '</tr>';
$suma += $this->array_precio_prod[$i];
}
}
//muestro el total
echo "<tr><td><b>TOTAL:</b></td><td> <b>$suma</b></td><td>&nbsp;</td></tr>";
//total más IVA
echo "<tr><td><b>IVA (16%):</b></td><td> <b>" . $suma * 1.16 . "</b></td><td>&nbsp;</td></tr>";
echo "</table>";
}

//elimina un producto del carrito. recibe la linea del carrito que debe eliminar
//no lo elimina realmente, simplemente pone a cero el id, para saber que esta en estado retirado
function elimina_producto($linea){
$this->array_id_prod[$linea]=0;
}
}
//inicio la sesión
session_start();
//si no esta creado el objeto carrito en la sesion, lo creo
if (!isset($_SESSION["ocarrito"])){
$_SESSION["ocarrito"] = new carrito();
}
?>PHP]

mete_producto.php:
Código PHP:
<?
include("lib_carrito.php");
$_SESSION["ocarrito"]->introduce_producto($_GET["id"], $_GET["nombre"], $_GET["precio"]);
?>

<html>
<head>
    <title>Introduce Producto</title>
</head>

<body>

Producto introducido.
<br>
<br>
<a href="index.php">- Volver</a>
<br>
<br>
<a href="ver_carrito.php">- Ver carrito</a>

</body>
</html>
ver_carrito.php:
Código PHP:
<?
include("lib_carrito.php");
?>

<html>
<head>
    <title>Introduce Producto</title>
</head>

<body>

<?
$_SESSION
["ocarrito"]->imprime_carrito();
?>
<br>
<br>
<a href="index.php">Volver</a>


</body>
</html>
eliminar_producto.php:
Código PHP:
<?
include("lib_carrito.php");
$_SESSION["ocarrito"]->elimina_producto($_GET["linea"]);
?>

<html>
<head>
    <title>Introduce Producto</title>
</head>

<body>

Producto eliminado.
<br>
<br>
<br>
<a href="index.php">- Volver</a>
<br>
<br>
<a href="ver_carrito.php">- Ver carrito</a>

</body>
</html>
  #8 (permalink)  
Antiguo 01/09/2005, 10:04
 
Fecha de Ingreso: agosto-2005
Mensajes: 77
Antigüedad: 12 años, 4 meses
Puntos: 0
Perdona, he dicho que te mostraba mi código, pero el que te he puesto es el original como ya habrás notado. Igual con el mío te lías por las modificaciones y porque he cambiado las variables recuperadas por get por variables de sesión.
  #9 (permalink)  
Antiguo 01/09/2005, 13:35
Avatar de The_omars  
Fecha de Ingreso: marzo-2004
Mensajes: 271
Antigüedad: 13 años, 9 meses
Puntos: 0
gracias por tu ayuda..

pero para que me entiendasn quiero que ejecuten el codigo lo que pasa es que si me agrega filas por medio de sesiones ahora no puedo quitarlas con el unset como le hago?

Código PHP:

<?
session_start
();
session_register("col");
if(isset(
$_POST['dato'])){
$dato=$_POST['dato'];
}
$sesion_item=$_SESSION["col"];

if(isset(
$dato)){
if(!isset(
$sesion_item)){
$sesion_item[]=1;
}else{ 
$sesion_item[]=0;}
}
// fin de si dato
$_SESSION["col"]=$sesion_item;
?>
<script>
function hey(){
document.forms[0].action="consulta2.php";
document.forms[0].submit();
}
</script>
<function>
<? 

?>
<table border="1">
<th>tabla agregar filas</th>
<tr><td><input type="text"><td><input type="text">
<? if(isset($sesion_item)){
foreach(
$sesion_item as $k => $v){
 echo 
"<tr><td><input type=text><td><input type=text><a href='consulta2.php?k=$k'>eliminar</a>";
}
}

if(isset(
$_GET['k'])){
echo 
$ke=$_GET['k'];
unset(
$sesion_item[$ke]);
}
?>
</table>
<form method="post">
<input type="hidden" name="dato" value="8">
<input type="button" onClick="hey()" value="Agregar">
</form>

<form method="post">
<input type="hidden" name="id_borra">
</form>
prueben el codigo para que se tenga una nocion de lo que intento lograr

gracias compañeros
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 10:04.