Foros del Web » Programando para Internet » PHP »

Insertar caja de texto a sesion

Estas en el tema de Insertar caja de texto a sesion en el foro de PHP en Foros del Web. Agradesco de antemano sus colaboraciones, 1. tengo una listado de productos que los trabajo por sesiones: <?php foreach($carro as $k => $v){ //abrir foreach ?> ...
  #1 (permalink)  
Antiguo 12/11/2008, 09:40
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Pregunta Insertar caja de texto a sesion

Agradesco de antemano sus colaboraciones,
1. tengo una listado de productos que los trabajo por sesiones:
<?php
foreach($carro as $k => $v){ //abrir foreach
?>
<form method="post" action="agregacarrito2.php?<?php echo SID ?>">
<tr>
<td><?php echo $v['id'] ?></td>
<td><?php echo $v['medicamento']." ".$v['presentacion']." ".$v['concentracion']." ".$v['formaFarmaceutica'] ?></td>
<td>
<input type="text" name="cantidad_autorizada" id="cantidad_autorizada">
<input name="ids" type="hidden" id="ids" value="<?php echo $v['id'] ?>">
</td>
</tr>
<?php }?> //cerrar foreach
<input type="submit" value="autorizar pedido">
2. lo que intento es insertar a la sesion carro, los datos autorizados por el usuario (caja de texto de name cantidad_autorizada) con el submit.

v[id] v[producto] caja de texto(cantidad_autorizada)
-----------------------------------------------------------------------
0001 producto 1 1000
0002 producto 2 2000
0003 producto 3 3000
0004 producto 4 4000
0005 producto 5 5000
0006 producto 6 6000
etc
3. estoy implementando el php agregacarrito2 de la siguiente manera:
<?php
session_start();
if(isset($_POST["cantidad_autorizada"])){ //confirmo si existe
$autori=$_POST["cantidad_autorizada"]; //lo digitado entrego a autori
$id=$_POST["ids"]; //idem codigo del producto autori
if(isset($_SESSION['carro'])) //confirmo si existe la sesion carro
{
$carro=$_SESSION['carro']; //asignamos a la variable carro
}
$carro[$id]=$autori; //aqui inserto la cantidad autorizada a la variable carro con respecto al codigo correspondiente
$_SESSION["carro"]=$carro; //le asignamos a la sesion
header("Location:listadoNoatendido.php?".SID); //dirigimos listado
}
?>

mi consulta es correcto o existe otra forma de como implementarla???, ojo que al correr el codigo mi consulta como seria para visualizar la cantidad autorizada ya guardada en la sesion carro?????
  #2 (permalink)  
Antiguo 12/11/2008, 09:45
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Insertar caja de texto a sesion

Ya que son varios campos con el mismo name, es mejor que coloques corchetes al name para que los recibas correctamente. O sea, cantidad_autorizada[], así, al recibirlo en PHP podrás recorrer $_POST['cantidad_autorizada'] con un foreach para obtener los datos de todos los campos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 12/11/2008, 10:01
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Insertar caja de texto a sesion

Agradesco David tus sugerencias,
espero poder implementarlo, a ver si me ayudas por favor. Según lo sugerido:
1. es mejor que coloques corchetes al name para que los recibas correctamente
<input type="text" name="cantidad_autorizada[]" id="cantidad_autorizada">
2. podrás recorrer $_POST['cantidad_autorizada'] con un foreach para obtener los datos de todos los campos.
me podrias explicar con un ejemplo si fuera posible????

gracias...
  #4 (permalink)  
Antiguo 12/11/2008, 10:09
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Insertar caja de texto a sesion

En el manual encontrarás muy buenos ejemplos al respecto: http://www.php.net/manual/es/control...es.foreach.php
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 12/11/2008, 10:30
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Disculpa por la ignorancia, pero tengo que consultar esto: no es que primero tengo que guardar los datos de las cajas de texto a SESSION['carro'] antes que visualize todos los datos de todos los campos??????

Segun esto: agregacarrito2.php
<?php
session_start();
if(isset($_POST["cantidad_autorizada"])){
$autori=$_POST["cantidad_autorizada"];
$id=$_POST["ids"];
if(isset($_SESSION['carro']))
{
$carro=$_SESSION['carro'];
}
$carro[$id]=$autori;
$_SESSION["carro"]=$carro;
header("Location:listadoNoatendido.php?".SID);
}
?>
le estoy asignando un campo mas a la sesion carro pero no le doy un nombre????? como seria esto por favor si alguien tuviese una idea u otra?????

para k luego segun lo sugerido por David recorrer el array (sesion carro) con el foreach para visualizar esta cantidad autorizada($autori)

Gracias de antemano por su ayuda....

Última edición por GatorV; 12/11/2008 a las 10:49
  #6 (permalink)  
Antiguo 12/11/2008, 10:55
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Insertar caja de texto a sesion

El array que debes recorrer es $autori, ya que en cada elemento de ese array tienes los datos ingresados en las cajas de texto.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 12/11/2008, 11:04
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Insertar caja de texto a sesion

Hola David, a ver si me orientas por favor,
Estoy leyendo el manual de php (segun lo que me sugeriste) con respecto al foreach, todo oka
pero una cosa, con respecto a la sesion carro, este es un array asociativo porque en el codigo origen esta sesion carro se origino de la siguiente manera:
agregacar.php
<?php
session_start();
extract($_REQUEST);
include('conec.php');
$qry=mysql_query("select * from catalogo where id='".$id."'");
$row=mysql_fetch_array($qry);
if(isset($_SESSION['carro']))
$carro=$_SESSION['carro'];
$carro[md5($id)]=array('identificador'=>md5($id),'cantidad'=>$cant idad,'producto'=>$row['producto'],'precio'=>$row['precio'],'id'=>$id);
$_SESSION['carro']=$carro;
header("Location:catalogo.php?".SID);
?>
ojo que tambien estoy leyendo con respecto al array asociativo, orientame por favor quisas este ultimo punto me pueda ayudar a lo que estoy realizando...gracias
  #8 (permalink)  
Antiguo 12/11/2008, 13:26
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Insertar caja de texto a sesion

Bien alguien si me podria ayudar, he modificado los codigos anteriormente descritos y obtuve esto:
listado.php
----------------
<form action="agregacarrito2.php" method="post">
foreach($carro as $k => $v){
<?php echo $v['id'] ?><?php echo $v['medicamento'] ?>
<input type="text" name="cantidad_autorizada[]" id="cantidad_autorizada"> //AQUI EL NAME ESTA CORRECTO
<?php } ?>
<input type="submit" value="autorizar pedido"> //boton submit
</form>

agregacarrito2.php
--------------------------
<?php
session_start();
$autori=$_POST["cantidad_autorizada"]; //RECOJO ARRAY DE LISTADO PHP A AUTORI
if(isset($_SESSION['carro'])) //SI EXISTE LA SESION
$carro=$_SESSION['carro']; //ASIGNO A LA VARIABLE CARRO
array_push($carro,$autori); //AÑADO EL ARRAY AUTORI AL ARRAY CARRO
$_SESSION['carro']=$carro; //LE ASIGNO A LA SESION
header("Location:listadoNoatendido.php?".SID);
?>

listado2.php
------------------
foreach($carro as $k => $v){ //RECORRER EL NUEVO ARRAY
<?php echo $v['cantidad_autorizada'] ?> //NO ME VISUALIZA NADA????????
  #9 (permalink)  
Antiguo 12/11/2008, 13:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Insertar caja de texto a sesion

mira, agregas el valor sin un indice, cierto ?

por eso no sale nada... ya que no existe!

si te das cuenta, agregas tan solo el valor del arreglo como viene del POST ...

intenta hacer un print_r para que compruebes la estructura de dicho $carro ... así ya sabrás como es...

vaya, no asumas un indice que no aseguras haber insertado... el formulario entrega un arreglo indexado y no asociado, pues...


suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 12/11/2008, 13:48
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Insertar caja de texto a sesion

Gracias de antemano pateketrueke por las sugerencias brindadas,
mira llevo varios dias sin dar con esto por favor si me podrias ayudar...
esto es lo intento realizar:
v[id] v[producto] caja de texto(cantidad_autorizada)
-----------------------------------------------------------------------
0001 producto 1 1000
0002 producto 2 2000
0003 producto 3 3000
0004 producto 4 4000
0005 producto 5 5000
0006 producto 6 6000
etc
donde el usuario solo ingresara en la caja de texto las cantidades autorizadas para los productos, los campos de los productos estan en la sesion carro que a su vez fueron recojidos por un array asociativos (claves + valores)...
ahora cuando intento unir este array carro con el array cantidad autorizada:
<input type="text" name="cantidad_autorizada[]" id="cantidad_autorizada"> //aqui intento pasarlo con el boton submit a agregacarrito2.php

y recojerlos todos los datos digitados???? por favor sugiereme que es lo que debo de cambiar....gracias
  #11 (permalink)  
Antiguo 12/11/2008, 14:05
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Insertar caja de texto a sesion

no entiendo... dices asociados?

Código HTML:
<input type="text" name="foo[20]" value="bar"/>
<input type="text" name="foo[12]" value="baz"/>
<input type="text" name="foo[99]" value="buzz"/> 
script.php
Código PHP:
<?php

// ...

$carro $_SESSION['basket'];

$carro array_merge($carro$_POST['foo']);

print_r($carro);

$_SESSION['basket'] = $carro;

// ----

/* EOF: ./script.php */
creo que al final lo que buscas es combinar los resultados, pero como has dicho son asociados.. de modo que no se deben agregar, sino sobre escribir/reemplazar si el caso se diera ¿estoy bien?

de este modo, se supone que debiera conservar bien las variable, supongo...

recuerda que ambos son arreglos.. de modo que un array_push agregaría un arreglo al arreglo, de modo que el valor del arreglo se mezcla mal...

espero te sirva, suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #12 (permalink)  
Antiguo 12/11/2008, 14:17
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Insertar caja de texto a sesion

A ver pateketrueke para entendernos,
con esto, el usuario selecciona los productos con todos los datos (id, nombre, descripcion, precio, etc):
<?php
session_start();
extract($_REQUEST);
include('conec.php');
conectarse();
if(!isset($cantidad)){$cantidad=1;}
$qry=mysql_query("select * from catalogo where id='".$id."'");
$row=mysql_fetch_array($qry);
if(isset($_SESSION['carro']))
$carro=$_SESSION['carro'];
$carro[md5($id)]=array('identificador'=>md5($id),'cantidad'=>$cant idad,'producto'=>$row['producto'],'precio'=>$row['precio'],'id'=>$id);
$_SESSION['carro']=$carro;
header("Location:catalogo.php?".SID);
?>
y lo agrega a un array carro, cierto???????
  #13 (permalink)  
Antiguo 12/11/2008, 14:17
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Insertar caja de texto a sesion

p.d. olvide mencione que despues lo guarda en una sesion carro.
  #14 (permalink)  
Antiguo 12/11/2008, 14:27
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Insertar caja de texto a sesion

Luego para listar los productos seleccionados del array carro (array asociativos) lo hace de la siguiente manera:
<form action="agregacarrito2.php" method="post">
foreach($carro as $k => $v){
<?php echo $v['id'] ?><?php echo $v['medicamento'] ?>
*******************
<?php } ?>
<input type="submit" value="autorizar pedido"> //boton submit
</form>

y es aqui ************* donde quiero que al momento de visualizar EL ADMINISTRADOR autorize las cantidades pertinentes y sea recojido en otro array $autori,
pero ojo como estas cajas de textos estan en el mismo orden con que se visauliza el array carro, no habria problema

Asi que lo que intento es unir este array carro y el array autori (que es pasado con el submit en el php agregacarrito2) y obtener esto:
v[id] v[producto] v[cantidad_autorizada]
-----------------------------------------------------------------------
0001 producto 1 1000
0002 producto 2 2000
0003 producto 3 3000
0004 producto 4 4000
0005 producto 5 5000
0006 producto 6 6000

para que en otro listado se visualize los AUTORIZADOS...gracias
  #15 (permalink)  
Antiguo 12/11/2008, 15:02
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Insertar caja de texto a sesion

Hola Pateketrueke,
segun me sugeriste usar el array_merge quedo el codigo asi:
Código PHP:
<?php 
session_start
();
$autori=$_POST["cantidad_autorizada"];
if(isset(
$_SESSION['carro']))
$carro=$_SESSION['carro'];
$result=array_merge($carro,$autori);
//$carro[md5($id)]=array('identificador'=>md5($id),'cantidad'=>$cantidad,'cantidad_autorizada'=>$cantida,'medicamento'=>$row['medicamento'],'presentacion'=>$row['presentacion'],'concentracion'=>$row['concentracion'],'formaFarmaceutica'=>$row['formaFarmaceutica'],'precio'=>$row['precio'],'id'=>$id);
print_r($result);
$_SESSION['carro']=$result;
header("Location:listadoNoatendido.php?".SID);
?>
pero me imprime esto:
Array ( [0] => 10 [1] => 30 ) //efectivamente 10 y 30 fueron las cantidades autorizadas por el ADMINISTRADOR, pero donde quedaron los demas datos del array carro?????????????????????????????
ayudame por favor, como te repito llevo ya varios dia sin dar con esto...gracias de antemano

Última edición por jam1138; 12/11/2008 a las 16:49 Razón: Favor de utilizar las etiquetas para encerrar código
  #16 (permalink)  
Antiguo 12/11/2008, 16:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Insertar caja de texto a sesion

pero.. ya has guardado la variable de sesión antes de usar el header ???
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #17 (permalink)  
Antiguo 12/11/2008, 16:40
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Insertar caja de texto a sesion

Al parecer si!!!!

$_SESSION['carro']=$result;
header("Location:listadoNoatendido.php?".SID);
  #18 (permalink)  
Antiguo 12/11/2008, 16:43
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Insertar caja de texto a sesion

al parecer, eh ...

antes de agregar un dato al $carro comprueba que haya datos de verdad... usa print_r
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #19 (permalink)  
Antiguo 12/11/2008, 16:47
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Insertar caja de texto a sesion

Efectivamente existen datos en el array $carro...pateketrueke una consulta tendra que ver en algo que este array este encriptado????

$carro[md5($id)]=array('identificador'=>md5($id),'cantidad'=>$cant idad,'medicamento'=>$row['medicamento'],'precio'=>$row['precio'],'id'=>$id,'cantidad_autorizada'=>$autori); //se origino asi en codigo

mientras que el otro array no!!!!
$autori=$_POST["cantidad_autorizada"];????????
  #20 (permalink)  
Antiguo 12/11/2008, 17:43
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Insertar caja de texto a sesion

Ayudenme por favor esto ya es lo ultimo que realize:
del listado envio lo sgte
<input type="text" name="cantidad_autorizada[]" id="cantidad_autorizada" value="<?php echo $v['cantidad'] ?>">
<input name="id[]" type="hidden" id="id" value="<?php echo $v['id'] ?>">

y esto es el codigo de agregacarrito2.php:
<?php
session_start();
extract($_REQUEST);
include('conec.php');
conectarse();
$autori=$_POST["cantidad_autorizada"];

$qry=mysql_query("select * from catalogo where id='".$id."'");
$row=mysql_fetch_array($qry);
if(isset($_SESSION['carro']))
$carro=$_SESSION['carro'];
$carro[md5($id)]=array('identificador'=>md5($id),'cantidad'=>$cant idad,'medicamento'=>$row['medicamento'],'presentacion'=>$row['presentacion'],'concentracion'=>$row['concentracion'],'formaFarmaceutica'=>$row['formaFarmaceutica'],'precio'=>$row['precio'],'id'=>$id,'cantidad_autorizada'=>$autori);
print_r($autori);
print_r($id);
print_r($carro);
$_SESSION['carro']=$carro;
header("Location:listadoNoatendido.php?".SID);
?>
y da como resultado:
1. Array ( [0] => 30 [1] => 30 ) //efectivamente el ADMINISTRADOR digito 30 y 30
2. Array ( [0] => 03502 [1] => 05408 ) //oka estos son los codigos
3. Array ( [18c8f62754ea20dcdc9ee292db1b46fd] => Array ( [identificador] => 18c8f62754ea20dcdc9ee292db1b46fd [cantidad] => 10 [medicamento] => Fentanilo [presentacion] => 2 mL [concentracion] => 25 ug/mL [formaFarmaceutica] => Amp [precio] => 55.00 [id] => 03502 [cantidad_autorizada] => 0 ) [06d84b98e0d1df882dc302c03a209707] => Array ( [identificador] => 06d84b98e0d1df882dc302c03a209707 [cantidad] => 10 [medicamento] => Petidina Clorhidrato [presentacion] => 2 mL [concentracion] => 100 mg/2 mL [formaFarmaceutica] => Amp [precio] => 100.00 [id] => 05408 [cantidad_autorizada] => 0 ) [4410ec34d9e6c1a68100ca0ce033fb17] => Array ( [identificador] => 4410ec34d9e6c1a68100ca0ce033fb17 [cantidad] => [medicamento] => [presentacion] => [concentracion] => [formaFarmaceutica] => [precio] => [id] => Array ( [0] => 03502 [1] => 05408 ) [cantidad_autorizada] => Array ( [0] => 30 [1] => 30 ) ) ) //esta ultimo parrafo de color rojo no debe ir para nada!!!!!!

como hacer para que en la clave cantidad_autorizada del array este efectivamente las cantidades digitadas por el administrador(30 y 30) ?????????????????????....si alguien podria ayudarme por favor
  #21 (permalink)  
Antiguo 12/11/2008, 17:59
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Insertar caja de texto a sesion

Ayudenme por favor con esto...creo que ya estoy en un estado de depresion que no me sale esto!!!!!!!!!!!!!!!!!!!!
necesito de sus ayudas
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 19:52.