Foros del Web » Programando para Internet » PHP »

Acumular valor variable de tabla con desplazamiento

Estas en el tema de Acumular valor variable de tabla con desplazamiento en el foro de PHP en Foros del Web. Hola, tengo una tabla en donde tengo un listado de articulos, cada articulo se puede seleccionar mediante un checkbox. La idea es que solo para ...
  #1 (permalink)  
Antiguo 14/04/2009, 16:15
 
Fecha de Ingreso: noviembre-2008
Mensajes: 122
Antigüedad: 15 años, 5 meses
Puntos: 4
Pregunta Acumular valor variable de tabla con desplazamiento

Hola, tengo una tabla en donde tengo un listado de articulos, cada articulo se puede seleccionar mediante un checkbox. La idea es que solo para cada articulo seleccionado se actualice la base de datos.

En la tabla muestro los articulos de a bloques, primero 30, luego 60 y asi sucesivam.
A traves de:

<input name="seleccionados[]" type="checkbox" value="<?php echo $row_recordset['codigoart']; ?>">

logro tener un array para los articulos seleccionados de la primera pagina q se muestra en la tabla, es decir, por ej: Art 5, 10, 30

Pero si quiero ademas, incluir en ese array los arts 35, 45, 59 ya pierdo los valores del array obtenidos por haberlos elegidos al estar en la primer pagina por defecto.
¿Como hago para mantener e ir agregando valores al array a medida que voy avanzando (Siguiente, Anterior, Ultimo) por los registros de una tabla..?
Llevo un buen rato intentando y siempre pierdo los valores. Si saben de algun ejemplo para guiarme les agradezco. Un saludo. Maria.
  #2 (permalink)  
Antiguo 14/04/2009, 16:17
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Acumular valor variable de tabla con desplazamiento

Utiliza SESSIONES para mantener el valor:

http://www.php.net/manual/es/book.session.php
  #3 (permalink)  
Antiguo 14/04/2009, 16:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Acumular valor variable de tabla con desplazamiento

Código PHP:
// recibo el primer POST?
$_SESSION['algo'] = $_POST['seleccion'];

// agregas mas?
$_SESSION['algo'] += $_POST['seleccion']

// y siempre usa los valores de la sesion, ya no del POST
echo '<input ' .  ( ! empty($_SESSION['algo'][$row->id])? ' checked="checked"''') . '/>'
es lo que mas se recomienda, suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 14/04/2009, 17:37
 
Fecha de Ingreso: noviembre-2008
Mensajes: 122
Antigüedad: 15 años, 5 meses
Puntos: 4
Pregunta Respuesta: Acumular valor variable de tabla con desplazamiento

Hola, antes q nada gracias por tu respuesta. No se me habia ocurrido eso de usar sesiones..
A ver si te entiendo, la cuestion seria guardar el objeto "checkbox" en una variable y luego ir manteniendola y agregandole codigos de articulos..?

Yo al escribir acumular no me refiero a sumar sino a que me vaya manteniendo todos los codigos de los articulos q voy seleccionando a medida que me desplazo con los botones de siguiente, ultimo, anterior, etc.
Yo usaba:
$artseleccionados .= $_POST['seleccionados'], pero claro sin sesion y con el punto en lugar de sumar ya que quiero q los agregue en el arreglo. No prentendo sumar los codigos de los articulos. Perdon, a lo mejor antes me exprese mal. Probare lo que me dices.. Luego te comento como me funciono. Un saludo.
  #5 (permalink)  
Antiguo 21/04/2009, 16:06
 
Fecha de Ingreso: noviembre-2008
Mensajes: 122
Antigüedad: 15 años, 5 meses
Puntos: 4
Desacuerdo Respuesta: Acumular valor variable de tabla con desplazamiento

Hola, mira no me ha funcionado.. He probado con lo siguiente:

$currentPage = $_SERVER["PHP_SELF"];
if (!isset($_SESSION)) {
//si no existe la session la creo y guardo el primer POST
session_start();
$_SESSION['algo'] = $_POST['seleccionados'];
}
else {
//si ya existe la session que vaya concatendando los id de articulos q se van seleccionando
$_SESSION['algo'] .= $_POST['seleccionados'];
}

En el form tengo:
<form name="form" action="procesar-para-arts-elegidos.php" method="post">
//la tabla con los datos de los articulos mostrados de a tandas (cada 30 arts) con los botones primero sgte, ant, ultimo
//..........
<input name="seleccionados[]" type="checkbox" value="<?php echo $row_recordset['codigoart']; ?>">

<input name="btn" type="submit" id="btn" value="Prueba" >

<input name="todoselegidos" type="hidden" id="todoselegidos" value="<?php echo $_SESSION['algo']; ?>">
--> Se lo asigno a un campo oculto para poder pasar la session como post

</form>

En procesar-para-arts-elegidos.php verifico los codigos de arts q se seleccionaron:
$selected=$_POST['todoselegidos']; //se recibe el array de elegidos que se enviaron
for ($j=0; $j<count($selected); $j++) {
echo $selected[$j]." - "; }
}

El problema es que se muestran solo los q se seleccionan por bloque, es decir, si de los primeros 30 arts elegi el cod 02 y el 15 y en la siguiente tanda elegi el 35 y el 45 y el 47 en procesar-para-arts-elegidos.php solo se muestran los arts 35 - 45 y 47. O sea, no los concatena y no funciona lo de las variables de sesion.
Me gui por un ejemplo de este foro pero tampoco me anduvo ("Problema con unset()"). A ver si puedes darme una mano. Graciass!
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 01:10.