Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] PHP OO Problemas al sobrescribir variable al recargar pagina

Estas en el tema de Problemas al sobrescribir variable al recargar pagina en el foro de PHP en Foros del Web. Muy buenas, Antes de nada agradeceros toda vuestra ayuda, llevo un dia y medio enfrascado en un problemilla que me esta trayendo algunos dolores de ...
  #1 (permalink)  
Antiguo 15/04/2013, 15:28
Avatar de migue1891  
Fecha de Ingreso: enero-2012
Mensajes: 50
Antigüedad: 12 años, 3 meses
Puntos: 0
Problemas al sobrescribir variable al recargar pagina

Muy buenas, Antes de nada agradeceros toda vuestra ayuda, llevo un dia y medio enfrascado en un problemilla que me esta trayendo algunos dolores de cabeza.

El caso es que que estoy haciendo un carrito y cuando quiero presentar al usuario la lista de la compra para que seleccionen la cantidad de cada articulo se me eliminan las cantidades anteriormente puestas en los demas.

Os pongo el codigo comentado.

Código PHP:
Ver original
  1. //Aqui ya he agregado dos productos a mi carrito.
  2. //En esta funcion los muestro
  3. public function trace() {  
  4.    
  5.     $out = "";  
  6.     $iterator = $this->productos->getIterator();  
  7.     $i=0;
  8.     $array_cant=array();
  9.  
  10.     while($iterator->valid())  
  11.     {  
  12.      $prod = $iterator->current();  
  13.  
  14.      $out .= '<div class="articulo">
  15.              <div class="infoPrin">
  16.              <div class="miniatura"><img src="../'.$prod->imagen.'" width="90" height="90"/></div>
  17.              <div class="info">
  18.                         <h4>'.$prod->nombre.'</h4>
  19.                        <p>Talla: Unica</p>
  20.                    </div><!--Info-->
  21.                </div><!--infoPrin-->
  22.                     <div>
  23.                         <form id="cant'.$i.'" name="cant" method="post" action="#">
  24.                            <select  onchange="selecCant('.$i.')" name="cantidad'.$i.'">
  25.                                <option selected value="1">1</option>
  26.                                <option value="2">2</option>
  27.                                <option value="3">3</option>
  28.                                <option value="4">4</option>
  29.                                <option value="5">5</option>
  30.                            </select>
  31.                        </form>
  32.                    </div>
  33.                    <div class="promocion"> </div>
  34.                    <div class="precio">'.$prod->precio *    $_SESSION['cantidad'.$i].'€ </div>
  35.                    <div class="lineaSep"></div>
  36.                    </div>
  37.                
  38.  
  39.        ';
  40.        $_SESSION['cantidad'.$i] = $_POST['cantidad'.$i];
  41.        
  42.      $i++;
  43.      $iterator->next();  
  44.      
  45.     }
  46.     return $out;  
  47.     }

Código Javascript:
Ver original
  1. //Tomo por parametro el numero de formulario que estoy usando y envio ese formulario
  2. function selecCant(posicion){
  3.  
  4.   document.getElementById("cant"+posicion).submit();
  5.              
  6.    }

El caso es que se que lo que falla es que estoy sobrescribiendo la variable de Sesion['canti...] cada vez que actualizo la pagina pero nose como mantener el valor.

Muchisimas gracias de antemano. Espero que este claro y legible. Un saludo
  #2 (permalink)  
Antiguo 16/04/2013, 02:32
Avatar de migue1891  
Fecha de Ingreso: enero-2012
Mensajes: 50
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Problemas al sobrescribir variable al recargar pagina

Bueno ya no se me sobrescribe la variable con valor undefined. pero ahora resulta que tengo que darle dos veces a la cantidad que deseo para que se efectué el cambio.

Os dejo el código haber si podéis echarle un vistazo

Código PHP:
Ver original
  1. public function trace() {  
  2.    
  3.     $out = "";  
  4.     $iterator = $this->productos->getIterator();  
  5.     $i=0;
  6.     $array_cant=array();
  7.  
  8.     while($iterator->valid())  
  9.     {  
  10.      $prod = $iterator->current();  
  11.  
  12.      $out .= '<div class="articulo">
  13.              <div class="infoPrin">
  14.              <div class="miniatura"><img src="../'.$prod->imagen.'" width="90" height="90"/></div>
  15.              <div class="info">
  16.                         <h4>'.$prod->nombre.'</h4>
  17.                        <p>Talla: Unica</p>
  18.                    </div><!--Info-->
  19.                </div><!--infoPrin-->
  20.                     <div>
  21.                         <form id="cant'.$i.'" name="cant" method="post" action="#">
  22.                            <select  onchange="selecCant('.$i.')" name="cantidad'.$i.'">
  23.                                <option selected value="1">1</option>
  24.                                <option value="2">2</option>
  25.                                <option value="3">3</option>
  26.                                <option value="4">4</option>
  27.                                <option value="5">5</option>
  28.                            </select>
  29.                        </form>
  30.                    </div>
  31.                    <div class="promocion">'.$_SESSION['cantidad'.$i].' </div>
  32.                    <div class="precio">'.$prod->precio.'€ </div>
  33.                    <div class="lineaSep"></div>
  34.                    </div>
  35.                    
  36.        ';
  37.          
  38.          if(isset($_POST['cantidad'.$i])){
  39.               $_SESSION['cantidad'.$i] = $_POST['cantidad'.$i];
  40.              
  41.             }else{
  42.                     if(!isset($_SESSION['cantidad'.$i]))
  43.                $_SESSION['cantidad'.$i] =1;
  44.              
  45.             }
  46.      echo "Sesion: ".$i ." ". $_SESSION['cantidad'.$i]."<br />";
  47.    
  48.      $i++;
  49.      $iterator->next();  
  50.      
  51.     }
  52.  
  53.  
  54.     return $out;  
  55.     }

Gracias y un saludo

Etiquetas: formulario, select, variable
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:45.