Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Almacenar tabla dinamica en variables de session

Estas en el tema de Almacenar tabla dinamica en variables de session en el foro de PHP en Foros del Web. Saludos foristas, Tengo una duda en como almacenar en variables de session php, los valores de varios inputs text de una tabla creada a partir ...
  #1 (permalink)  
Antiguo 09/07/2016, 07:28
Avatar de edrc5  
Fecha de Ingreso: marzo-2016
Mensajes: 16
Antigüedad: 8 años
Puntos: 0
Almacenar tabla dinamica en variables de session

Saludos foristas,

Tengo una duda en como almacenar en variables de session php, los valores de varios inputs text de una tabla creada a partir de filas (Inputs) que se crean mediante una función javascript. Tengo el siguiente código
Código:
<form id="form" name="form" method="post" action="pagina1.php">

<div class="col-md-3 inline-block">
<article>
     <table id="Tabla" border="1">
<thead>
	<tr>
		<th colspan="3" class="color-titulo center" style="text-align: center;"><font color="FFFFFF">Factor1</font></th>
	</tr>
</thead>
 <tr>
          	   <td><input type="checkbox" name="chk" value="chk"/></td>
               <td><input type="text" name="txt" value="" /></td>
          </tr>

     </table>
     <p></p>
     <p class="inline-block">
  <input type="button" value="Agregar" onclick="agregarFila('Tabla');" style="width:100px"/>
  </p>
  <p class="col-md-5 inline-block">
<input type="button" value="Borrar" onclick="borrarFila('Tabla');" style="width:100px"/>
</p>
</article>
</div>
<div class="col-md-4 inline-block">
<article>
<table id="Tabla1" border="1" >
<thead>
	<tr>
		<th colspan="3" class="color-titulo center" style="text-align: center;"><font color="FFFFFF">Factor 2</font></th>
	</tr>
</thead>
          <tr>
          	   <td><input type="checkbox" name="chk1"/></td>
               <td><input type="text" name="txt1" value="" /></td>
          </tr>

     </table>
     <p></p>
     <p class="inline-block">
<input type="button" value="Agregar" onclick="agregarFila('Tabla1');" style="width:100px"/>
</p>
<p class="col-md-5 inline-block">
<input type="button" value="Borrar" onclick="borrarFila('Tabla1');" style="width:100px"/>
</p>
</article>

<center>
<input type="submit" id="Siguiente" name="Siguiente" value="Siguiente" style="width:100px"/>
</form>
<input type="submit" onclick= "location.href='index.php'" id="Atras" name="Atras" value="Atrás" style="width:100px"/>
</center>
En el código anterior se van creando filas al dar clic al boton Agregar, lo que quiero es que a medida que voy agregando filas, estos se vayan almacenando en variables de session php (Arrays), para poder imprimirlo o mostrarlo en la pagina siguiente pagina1.php


Este es el cogido javascript que tengo para agregar y borrar filas:
Código:
function agregarFila(tablaID) {

               var tabla = document.getElementById(tablaID);

 

               var contarFila = tabla.rows.length;

               var fila = tabla.insertRow(contarFila);

 

               var celda1 = fila.insertCell(0);

               var elemento1 = document.createElement("input");

               elemento1.type = "checkbox";

               celda1.appendChild(elemento1);



               var celda2 = fila.insertCell(1);

               var elemento2 = document.createElement("input");

               elemento2.type = "text";

               celda2.appendChild(elemento2);

          }


          function borrarFila(tablaID) {

               try {

               var tabla = document.getElementById(tablaID);

               var contarFila = tabla.rows.length;

 

               for(var i=0; i<contarFila; i++) {

                    var fila = tabla.rows[i];

                    var chkbox = fila.cells[0].childNodes[0];

                    if(null != chkbox && true == chkbox.checked) {

                         tabla.deleteRow(i);

                         contarFila--;

                         i--;

                    }

               }

               }catch(e) {

                    alert(e);

               }

          }
Estoy atento a sus comentarios.

Saludos y gracias de antemano.
  #2 (permalink)  
Antiguo 09/07/2016, 08:46
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 5 meses
Puntos: 48
Información Respuesta: Almacenar tabla dinamica en variables de session

Hola edrc5,

Tienes dos opciones:

1- enviar por POST los inputs a la siguiente pagina cuando hagas submit del formulario.

2- Usar Ajax para guardar en variables de sesion los input, de esta forma cuando pases a la siguiente pagina tendras disponible en las variables de sesion los input.

Ambas soluciones son igual de validas, elige la que mas se ajuste a tus necesidades o conocimientos.

Saludos!
__________________
El problema de nuestra época consiste en que sus hombres no quieren ser útiles sino importantes.

Winston Churchill
  #3 (permalink)  
Antiguo 09/07/2016, 10:23
Avatar de edrc5  
Fecha de Ingreso: marzo-2016
Mensajes: 16
Antigüedad: 8 años
Puntos: 0
Respuesta: Almacenar tabla dinamica en variables de session

Cita:
Iniciado por Synkronice Ver Mensaje
Hola edrc5,

Tienes dos opciones:

1- enviar por POST los inputs a la siguiente pagina cuando hagas submit del formulario.

2- Usar Ajax para guardar en variables de sesion los input, de esta forma cuando pases a la siguiente pagina tendras disponible en las variables de sesion los input.

Ambas soluciones son igual de validas, elige la que mas se ajuste a tus necesidades o conocimientos.

Saludos!
Saludos Synkronice.

Gracias por tu sugerencia, se como enviar los inputs mediante POST pero cuando son inputs fijos, pero en este caso voy creando inputs dinamicamente, ahora a lo que voy es como enviar esos inputs que he creado dinamicamente (Pueden ser 3 inputs o 5 inputs, que depende de la cantidad de filas que haya creado, esa es mi duda. Se que puede ser con un ciclo for declarando una variable como variable de session pero si pudieras darme un ejemplo con el codigo que escribi te lo agradecere.


Gracias de antemano.
  #4 (permalink)  
Antiguo 09/07/2016, 10:31
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 5 meses
Puntos: 48
Información Respuesta: Almacenar tabla dinamica en variables de session

Hola edrc5,

para enviar esos inputs que has creado dinamicamente no has de hacer nada especial, tan solo pulsar el boton de submit.

Un saludo.
__________________
El problema de nuestra época consiste en que sus hombres no quieren ser útiles sino importantes.

Winston Churchill
  #5 (permalink)  
Antiguo 09/07/2016, 10:44
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 5 meses
Puntos: 48
Exclamación Respuesta: Almacenar tabla dinamica en variables de session

Hola edrc5,

estuve revisando tu codigo y he visto que tu problema radica en que no estas asignado el atributo "name" a tus inputs, por eso no se envian por POST.

Asegurate de que cuando generes los inputs de forma dinamica todos tenga un atributo "name" diferente, ya que si les das el mismo "name" a todos, solo te cogera el valor del ultimo input.

Puedes ayudarte de alguna especie de contador incremental en javascript.

Saludos!
__________________
El problema de nuestra época consiste en que sus hombres no quieren ser útiles sino importantes.

Winston Churchill
  #6 (permalink)  
Antiguo 09/07/2016, 11:33
Avatar de edrc5  
Fecha de Ingreso: marzo-2016
Mensajes: 16
Antigüedad: 8 años
Puntos: 0
Respuesta: Almacenar tabla dinamica en variables de session

Cita:
Iniciado por Synkronice Ver Mensaje
Hola edrc5,

estuve revisando tu codigo y he visto que tu problema radica en que no estas asignado el atributo "name" a tus inputs, por eso no se envian por POST.

Asegurate de que cuando generes los inputs de forma dinamica todos tenga un atributo "name" diferente, ya que si les das el mismo "name" a todos, solo te cogera el valor del ultimo input.

Puedes ayudarte de alguna especie de contador incremental en javascript.

Saludos!
Hola Synkronice,

Gracias nuevamente por tus valiosas sugerencias, quería entenderte un poco cuando me dices que no estoy asignando el name a los input. El input de cada form tiene de Name = txt y Name = txt1, podrías darme un ejemplo? No tengo mucha experiencia apenas unos 4 meses en esto de PHP pero he aprendido un monton por foristas como tu.

El contador incremental sería realizarlo en PHP algo como esto:
Código:
<?php
for($i=0;$i<$_SESSION['contador'];$i++) {
echo "
      lo que sea
";
}
?>
Podrías sinceramente facilitarme un ejemplo de como cambiar el nombre de cada input (que genero al agregar filas) de manera incremental ya sea con Javascript o mediante PHP?

Te lo agradeceré.
  #7 (permalink)  
Antiguo 09/07/2016, 11:43
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 5 meses
Puntos: 48
Información Respuesta: Almacenar tabla dinamica en variables de session

Hola edrc5,

antes de nada quiero pedirte un esfuerzo adicional. Ya se que eres junior en esto, pero eso no quita para que intentemos analizar y entender como funcionan las cosas.

Que quiero decir con esto? Pues me refiero a que si estamos creando los input dinamicamente desde Javascript, como vas a crear el contador en PHP?...

PHP solo se ejecuta cuando llamas a un script, una vez la pagina ya ha sido enviada al navegador, PHP ya no entra en juego, de ahi que tengamos que usar Javascript para poder crear interfaces dinamicas en el navegador del usuario.

Recuerda...

1- PHP se ejecuta en el servidor, compone la salida y la envia al navegador, y ahi muere su actuacion.

2- Javascript se ejecuta en el navegador del usuario, y nos permite capturar eventos de la interfaz y llamar a funciones para que hagan lo que nosotros queramos.

Aclarado esto volvamos a tu problema.

Tu estas creando inputs dinamicos, asi que despues de lo anterior deducimos que esto ocurre en Javascript.

Si tenemos que asignar un nombre unico a estos inputs debemos hacerlo en el momento que creamos los inputs, correcto?

Intentalo terminar tu y si te vuelves a atascar seguimos hablando.

Suerte y al toro!
__________________
El problema de nuestra época consiste en que sus hombres no quieren ser útiles sino importantes.

Winston Churchill
  #8 (permalink)  
Antiguo 10/07/2016, 09:48
Avatar de edrc5  
Fecha de Ingreso: marzo-2016
Mensajes: 16
Antigüedad: 8 años
Puntos: 0
Respuesta: Almacenar tabla dinamica en variables de session

Cita:
Iniciado por Synkronice Ver Mensaje
Hola edrc5,

antes de nada quiero pedirte un esfuerzo adicional. Ya se que eres junior en esto, pero eso no quita para que intentemos analizar y entender como funcionan las cosas.

Que quiero decir con esto? Pues me refiero a que si estamos creando los input dinamicamente desde Javascript, como vas a crear el contador en PHP?...

PHP solo se ejecuta cuando llamas a un script, una vez la pagina ya ha sido enviada al navegador, PHP ya no entra en juego, de ahi que tengamos que usar Javascript para poder crear interfaces dinamicas en el navegador del usuario.

Recuerda...

1- PHP se ejecuta en el servidor, compone la salida y la envia al navegador, y ahi muere su actuacion.

2- Javascript se ejecuta en el navegador del usuario, y nos permite capturar eventos de la interfaz y llamar a funciones para que hagan lo que nosotros queramos.

Aclarado esto volvamos a tu problema.

Tu estas creando inputs dinamicos, asi que despues de lo anterior deducimos que esto ocurre en Javascript.

Si tenemos que asignar un nombre unico a estos inputs debemos hacerlo en el momento que creamos los inputs, correcto?

Intentalo terminar tu y si te vuelves a atascar seguimos hablando.

Suerte y al toro!
Listo Synkronice,

Ya pude solucionar, si fue lo mejor para mí poner algo adicional para buscar la solución, te comentó que agregue a cada función agregar fila un elemento.name = 'txt[]' y luego para pasarlo a la otra pagina realice un
Código:
<?php 
	if (isset($_POST)==true && empty($_POST)==false) {
		$txt = $_POST['txt'];
	} ?>
para luego aplicar un foreach por cada elemento e imprimirlo por incremento
Código:
	foreach ($txt as $a => $b) y luego echo $a+1;
.
Gracias por motivarme.
Saludos.

Última edición por edrc5; 10/07/2016 a las 09:48 Razón: error en texto

Etiquetas: almacenar, dinamica, session, tabla, variable, variables
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 03:18.