Foros del Web » Programando para Internet » PHP »

tengo que actualizar la pagina al cambiar (actualizando cantidad)

Estas en el tema de tengo que actualizar la pagina al cambiar (actualizando cantidad) en el foro de PHP en Foros del Web. tengo el siguiente codigo: Dos problemas se me presentan: 1. Colocar la cantidad para el calculo del total (cuando cambian cantidad). 2. Error con variable ...
  #1 (permalink)  
Antiguo 02/10/2006, 06:00
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
tengo que actualizar la pagina al cambiar (actualizando cantidad)

tengo el siguiente codigo:

Dos problemas se me presentan:
1. Colocar la cantidad para el calculo del total (cuando cambian cantidad).
2. Error con variable PHP_SELFT

Código PHP:
<?php
    $id 
$this->array_id_prod;
    
$id2 implode ","$id );
    
$db mysql_pconnect "xxxx""xxxx""xxxx" );
    
mysql_select_db 'xxxx' );
    
            
$consulta "SELECT * FROM tblArticulos WHERE id_index IN ( $id2 )";
            
$result mysql_query $consulta );

            
$numeroderesult mysql_num_rows $result ); 
            if (
$numeroderesult 0){
                  while (
$fila=mysql_fetch_array($result)){ 
                  echo 
"ID de artículo: ".$fila['id_index']."<br/>"
                  echo 
"Precio de artículo: ".$fila['precio']."<br/>"
                  echo 
"Cantidad de cuotas: ".$fila['cuotas']."<br/>";
                echo 
"Cantidad: <input type='text' name='cantidad' class='formulario'  maxlength='30' value='1' onKeyUp = 'valor(this)'><br/>";
                
//en la linea siguiente deberia colocar ademas la cantidad
                
echo "Total: ".$fila['cuotas']*$fila['precio']."<p>";
                } 
            } else {
                   echo 
"No hay resultados";
            }  
    }
    
// ademas me da el error el uso de PHP_SELF (lo coloco al final el error)
    
echo "
        <form name='hartley1' action = '<?php =PHP_SELFT; ?>' method = 'POST'> 
        <input type='submit' name='Submit' value='Actualizar Datos'><p>
        </form>
        <form name='hartley2' method='post' action='confirmar.php'>
        <input type='submit' name='Submit' value='Confirmar Compras' action='compras.php'><p>
        </form>
        "
;
?>

me tiro el siguiente error el uso de PHP_SELFT:

You don't have permission to access /hartley1/< on this server.

Gracias
  #2 (permalink)  
Antiguo 02/10/2006, 07:27
Avatar de braulito  
Fecha de Ingreso: abril-2004
Ubicación: Cusco - Perú
Mensajes: 597
Antigüedad: 20 años
Puntos: 8
La Variable se llama PHP_SELF, además lo estás usando incorréctamente. es decir estás usando <?php dentro de un <?php cuando no es necesario.. Lo "casi" correcto sería:

Código PHP:
echo "
        <form name='hartley1' action = '" 
$_SERVER['PHP_SELF'] . "' method = 'POST'> 
        <input type='submit' name='Submit' value='Actualizar Datos'><p>
        </form>
        <form name='hartley2' method='post' action='confirmar.php'>
        <input type='submit' name='Submit' value='Confirmar Compras' action='compras.php'><p>
        </form>
        "

__________________
Braulio Soncco
braulio at buayacorp dot com
Buayacorp - Programación y Diseño
  #3 (permalink)  
Antiguo 02/10/2006, 07:52
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
muchas gracias por el tema de php_self quedo, pero sigo

con el problema de la cantidad no se como agregar la cantidad que se cambia en el cuadro de texto a los datos ingresados
Código PHP:
            echo "Precio de artículo: ".$fila['precio']."<br/>"
                  echo 
"Cantidad de cuotas: ".$fila['cuotas']."<br/>";
                echo 
"Cantidad: <input type='text' name='cantidad' class='formulario'  maxlength='30' value='1' onKeyUp = 'valor(this)'><br/>";
                
//en la linea siguiente deberia colocar ademas la cantidad
                
echo "Total: ".$fila['cuotas']*$fila['precio']."<p>"
en la linea echo "Total: ........" deberia colocar la variable cantidad que se cambia arriba y al actualizar, volvermelo a calcular, pruebo pruebo pero nada che no me sale, gracias
  #4 (permalink)  
Antiguo 02/10/2006, 09:20
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 4 meses
Puntos: 4
Disculpa que no te haya contestado antes, lo que sucede es que no tuve tiempo y hasta apenas cheque mi correo. Bueno que a caso no te dio una idea lo que te conteste aqui:

http://www.forosdelweb.com/showthrea...09#post1720009

o que es exactamente lo que necesitas?

Suerte
  #5 (permalink)  
Antiguo 02/10/2006, 10:28
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
me sirvio el ejemplo, lo que pasa

que al quererlo colocarlo en la ultima linea (siguiente codigo) me da problemas porque no me toma la cantidad. La pregunta concreta es posible que yo pueda tomar el valor de la cantidad automaticamente (el valor que le ingreso con el input type y colocarlo en el ultimo echo

Código PHP:
echo "Cantidad: <input type='text' name='cantidad' class='formulario'  maxlength='30' value='1' onKeyUp = 'valor(this)'><br/>";
//en la linea siguiente deberia colocar ademas la cantidad
echo "Total: ".$fila['cuotas']*$fila['precio']."<p>"
Gracias nuevamente
  #6 (permalink)  
Antiguo 02/10/2006, 11:23
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 4 meses
Puntos: 4
Y si realizas algo parecido a esto:

Código PHP:
<?php
$db 
mysql_pconnect "xxxx""xxxx""xxxx" ); 
mysql_select_db 'xxxx' ); 
$consulta "SELECT * FROM tblArticulos WHERE id_index IN ( $id2 )"
$result mysql_query $consulta );
$numeroderesult mysql_num_rows $result );  

if (
$numeroderesult 0)

   while ( 
$fila mysql_fetch_array $result ) )
   {
      if ( isset ( 
$_POST['submit' ] ) )
      {
         echo 
"ID de artículo: ".$fila['id_index']."<br/>";  
         echo 
"Precio de artículo: ".$fila['precio']."<br/>";  
         echo 
"Cantidad de cuotas: ".$fila['cuotas']."<br/>"
         echo 
"Total: ".$_POST['cantidad']*$fila['precio']."<p>"
      }
      else
      {
         echo 
"<form name = \"formu\" action = '".$_SERVER['PHP_SELFT']."' method = \"POST\">";
         echo 
"ID de artículo: ".$fila['id_index']."<br/>";  
         echo 
"Precio de artículo: ".$fila['precio']."<br/>";  
         echo 
"Cantidad de cuotas: ".$fila['cuotas']."<br/>"
         echo 
"Cantidad: <input type='text' name='cantidad' class='formulario' maxlength='30' value='1'><br/>";
         echo 
"Total: ".$fila['cuotas']*$fila['precio']."<p>";
         echo 
"<input type = \"submit\" name = \"submit\" value = \"Actualizar\">";
         echo 
"</form>";
      }
   }  
}
else

   echo 
"No hay resultados"
}
?>
Hojala si te funcione. Suerte
  #7 (permalink)  
Antiguo 02/10/2006, 11:49
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
ahora me actualiza la cantidad,pero presenta algunos incovenientes

por supuesto para lo que quiero hacer.

Te explico el boton actualizar deberia quedar a fuera del while cosa que aparezca una sola vez al final de la pagina (este boton me lo repite en cada articulo), y veo que en el if al preguntar, como viene con datos se ejecuta siempre pero desaparece el boton actualizar (por lo menos lo que yo entiendo,no??), voy a seguir investigando, si se te ocurre algo bienvenido será, gracias de todas maneras igual
  #8 (permalink)  
Antiguo 02/10/2006, 11:59
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
ademas presenta otro problema

Que solo actualiza para el primero y los demas (dejan de calcular el total, es decir cambia multiplicando tambien el precio por la cantidad), sigo en la busqueda, gracias
  #9 (permalink)  
Antiguo 02/10/2006, 12:13
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 4 meses
Puntos: 4
Si lo pones de esta forma:

Código PHP:
<?php 
$db 
mysql_pconnect "xxxx""xxxx""xxxx" );  
mysql_select_db 'xxxx' );  
$consulta "SELECT * FROM tblArticulos WHERE id_index IN ( $id2 )";  
$result mysql_query $consulta ); 
$numeroderesult mysql_num_rows $result );   

if (
$numeroderesult 0
{
   if ( isset ( 
$_POST['submit' ] ) )
   {
      while ( 
$fila mysql_fetch_array $result ) ) 
      {
         
$variable 'cantidad'.$fila['id_index'];
         if ( 
$_POST[$variable] <> $fila['cuotas'] )
         {
            echo 
"ID de artículo: ".$fila['id_index']."<br/>";   
            echo 
"Precio de artículo: ".$fila['precio']."<br/>";   
            echo 
"Cantidad de cuotas: ".$fila['cuotas']."<br/>";  
            echo 
"Total: ".$variable*$fila['precio']."<p>";
            continue;
         }
         else
         {
            echo 
"ID de artículo: ".$fila['id_index']."<br/>";   
            echo 
"Precio de artículo: ".$fila['precio']."<br/>";   
            echo 
"Cantidad de cuotas: ".$fila['cuotas']."<br/>";  
            echo 
"Total: ".$fila['cuotas']*$fila['precio']."<p>"
         }
      }
   }
   else 
   {
      echo 
"<form name = \"formu\" action = '".$_SERVER['PHP_SELFT']."' method = \"POST\">";
      while ( 
$fila mysql_fetch_array $result ) ) 
      {
          
         echo 
"ID de artículo: ".$fila['id_index']."<br/>";   
         echo 
"Precio de artículo: ".$fila['precio']."<br/>";   
         echo 
"Cantidad de cuotas: ".$fila['cuotas']."<br/>";  
         echo 
"Cantidad: <input type='text' name='cantidad".$fila['id_index']."' class='formulario' maxlength='30' value='1'><br/>"
         echo 
"Total: ".$fila['cuotas']*$fila['precio']."<p>"
      } 
      echo 
"<input type = \"submit\" name = \"submit\" value = \"Actualizar\">"
      echo 
"</form>"
   }

else 
{  
   echo 
"No hay resultados";  

?>
Funcionará? Suerte
  #10 (permalink)  
Antiguo 02/10/2006, 12:18
Avatar de braulito  
Fecha de Ingreso: abril-2004
Ubicación: Cusco - Perú
Mensajes: 597
Antigüedad: 20 años
Puntos: 8
Erikfrancisco: es PHP_SELF :P
__________________
Braulio Soncco
braulio at buayacorp dot com
Buayacorp - Programación y Diseño
  #11 (permalink)  
Antiguo 02/10/2006, 12:31
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
la pu...$%·$"·"·, y bueno quien me mando meterme en esto (jajajaja)

Imaginate lo siguiente: (hace de cuenta que estos son los articulos)

ID de artículo: 1
Precio de artículo: 539
Cantidad de cuotas: 1
Cantidad:
Total: 539

ID de artículo: 2
Precio de artículo: 49.5
Cantidad de cuotas: 12
Cantidad:
Total: 594

Al final debe aparecer el boton actualizar, pero el mismo en realidad deberia actualizar toda la pagina de nuevo (es mas esta dando tanto trabajo que estoy por realizar algun cambio de como obtengo los datos).
Bueno la verdad que tu tiempo dedicado a esto es de una gran ayuda, asi que gracias por todo che
  #12 (permalink)  
Antiguo 02/10/2006, 13:40
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 4 meses
Puntos: 4
Te servirá algo así:

Código PHP:
<?php
$clientes 
= array ( array ('1''539''1''''539'),
                    array ( 
'2''49.5''12''''594' )
                  );

if ( isset ( 
$_POST['submit'] ) )
{
   echo 
"<form name = \"formu\" action = \"".$_SERVER['PHP_SELF']."\" method = \"POST\">";
   for ( 
$e 0$e count $clientes ); $e++ )
   {
      echo 
"ID de artículo: ".$clientes[$e][0]."<br/>\n";
      echo 
"Precio de artículo: ".$clientes[$e][1]."<br/>\n";
      echo 
"Cantidad de cuotas: ".$clientes[$e][2]."<br/>\n";

      if ( 
$_POST'cantidad'.$clientes[$e][0] ] != '' )
      {
         echo 
"La Cantidad de cuotas se modifico a: <input type = \"text\" name = \"cantidad".$clientes[$e][0]."\" value = \"".$_POST'cantidad'.$clientes[$e][0] ]."\"><br/>\n";
         echo 
"Total: ".$_POST['cantidad'.$clientes[$e][0] ] * $clientes[$e][1]."<p>\n\n";
      }
      else
      {
         echo 
"Cantidad: <input type = \"text\" name = \"cantidad".$clientes[$e][0]."\"><br/>\n";
         echo 
"Total: ".$clientes[$e][2] * $clientes[$e][1]."<p>\n\n";
      }

   }
   echo 
"<input type = \"submit\" name = \"submit\" value = \"Actualizar\"";
   echo 
"</form>";
}
else
{
   echo 
"<form name = \"formu\" action = \"".$_SERVER['PHP_SELF']."\" method = \"POST\">";
   for ( 
$e 0$e count $clientes ); $e++ )
   {
      echo 
"ID de artículo: ".$clientes[$e][0]."<br/>\n";
      echo 
"Precio de artículo: ".$clientes[$e][1]."<br/>\n";
      echo 
"Cantidad de cuotas: ".$clientes[$e][2]."<br/>\n";
      echo 
"Cantidad: <input type = \"text\" name = \"cantidad".$clientes[$e][0]."\"><br/>\n";
      echo 
"Total: ".$clientes[$e][2] * $clientes[$e][1]."<p>\n\n";
   }
   echo 
"<input type = \"submit\" name = \"submit\" value = \"Actualizar\"";
   echo 
"</form>";
}
?>
Hojala te pueda dar otra idea para resolver tu problema. Suerte
  #13 (permalink)  
Antiguo 02/10/2006, 14:11
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
bueno, creo que nos estamos alejando del tema inicial.

pero te comento que no me sirvio, pero te agradezco nuevamente todo lo que has intentado en ayudarme.
  #14 (permalink)  
Antiguo 02/10/2006, 14:40
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 4 meses
Puntos: 4
¿Que es lo que no te sirvio? el ejemplo que te acabo de poner o el hecho de que no es lo que necesitas. Por que si es esto último no entiendo cual es tu problema.
  #15 (permalink)  
Antiguo 02/10/2006, 14:40
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
vuelvo de nuevo, despues de dar tantas vueltas. Empezamos de nuevo:

en esta funcion yo levanto los datos de la tabla articulos segun los id

selec.php

Código PHP:
    function ver_compras(){
    
$id $this->array_id_prod;
    
$id2 implode ","$id ); // esto sirve para pasarle los id a la consulta 
    
$db mysql_pconnect "xxxx""xxxx""xxxx" );
    
mysql_select_db 'xxxx' );
    
            
$consulta "SELECT * FROM tblArticulos WHERE id_index IN ( $id2 )";
            
$result mysql_query $consulta );

            
$numeroderesult mysql_num_rows $result ); 
            if (
$numeroderesult 0){
                  while (
$fila=mysql_fetch_array($result)){ 
                  echo 
"ID de artículo: ".$fila['id_index']."<br/>"
                  echo 
"Precio de artículo: ".$fila['precio']."<br/>"
                  echo 
"Cantidad de cuotas: ".$fila['cuotas']."<br/>";
                echo 
"Cantidad: <input type='text' name='id' value='".$fila['cantidad']."><br/>";
                echo 
"Total: ".$fila['precio'] * $fila['cuotas']."<p>";
                } 
            } else {
                   echo 
"No hay resultados";
            }  
    } 
Bueno ahora en la linea:

Código PHP:
echo "Cantidad: <input type='text' name='id' value='".$fila['cantidad']."><br/>"
estoy levantando la cantidad de la tabla, que esta determinada en uno, hay forma de que esa cantidad la levante de un array cantidad que vengo manejando:

lo defno:
Código PHP:
var $array_cantidad_prod
lo cargo en:
Código PHP:
$this->array_cantidad_prod[$this->num_productos]=$cantidad_prod
BUeno ahora si es la ultima si no borro y empiezo de nuevo, jajajaja, gracias
  #16 (permalink)  
Antiguo 02/10/2006, 14:57
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 4 meses
Puntos: 4
Que acaso no es el mismo problema que se planteo aquí:

http://www.forosdelweb.com/f18/sigo-con-problema-array-id-articulos-429666/

y que GatorV nos hizo el favor de resolver.
  #17 (permalink)  
Antiguo 03/10/2006, 05:35
 
Fecha de Ingreso: agosto-2006
Mensajes: 388
Antigüedad: 17 años, 8 meses
Puntos: 0
no; vuelvo a colocar todo el codigo

el proceso comienza en un archivo que envia id_prod, producto y cantidad, este es recibido por el siguiente archivo (codigo)

Código PHP:
<?
class carrito {
       var 
$num_productos;
       var 
$array_id_prod;
       var 
$array_nombre_prod;
       var 
$array_cantidad_prod;

    function 
carrito () {
           
$this->num_productos=0;
    }
    
    function 
introduce_producto($id_prod,$nombre_prod,$cantidad_prod){
        
$this->array_id_prod[$this->num_productos]=$id_prod;
        
$this->array_nombre_prod[$this->num_productos]=$nombre_prod;
        
$this->array_cantidad_prod[$this->num_productos]=$cantidad_prod;
        
$this->num_productos++;
    }
    
    
    
    function 
ver_compras(){
    
$id $this->array_id_prod;
    
$id2 implode ","$id );
    
$db mysql_pconnect "xxxx""xxxx""xxxx" );
    
mysql_select_db 'xxxx' );
    
            
$consulta "SELECT * FROM tblArticulos WHERE id_index IN ( $id2 )";
            
$result mysql_query $consulta );

            
$numeroderesult mysql_num_rows $result ); 
            if (
$numeroderesult 0){
                  while (
$fila=mysql_fetch_array($result)){ 
                  echo 
"ID de artículo: ".$fila['id_index']."<br/>"
                  echo 
"Precio de artículo: ".$fila['precio']."<br/>"
                  echo 
"Cantidad de cuotas: ".$fila['cuotas']."<br/>";
                echo 
"Cantidad: <input type='text' name='id' value='".$fila['cantidad']."><br/>";
                echo 
"Total: ".$fila['precio'] * $fila['cuotas']."<p>";
                } 
            } else {
                   echo 
"No hay resultados";
            }  
    }

    function 
ver_carrito(){
        
$suma 0;
        
$cantidad 0;
        echo 
'<table border=1 cellpadding="3">
              <tr>
                <td><b>Nombre producto</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><a href='eliminar_producto.php?linea=$i'>Eliminar producto</td>";
                echo 
'</tr>';
                
                
$cantidad++;
            }
        }
        echo 
"<tr><td><b>Total Articulos:</b></td><td> <b>$cantidad</b></td></tr>";
        echo 
"</table>";
    }
    

    
    function 
elimina_producto($linea){
        
$this->array_id_prod[$linea]=0;
    }

session_start();
if (!isset(
$_SESSION["ocarrito"])){
    
$_SESSION["ocarrito"] = new carrito();
}
?>
Si observamos vemos funciones, entre ella la funcion ver_compras y ver_carrito.
La funcion ver_carrito lo unico que muestra es el nombre del producto que se agrego al array de los productos.
La funcion ver_compras, tomando los id de los productos va hacia la tabla de articulos y trae los otros datos que preciso (como por ejemplo cuotas del producto).
Pues bien, ahora los datos que yo traigo de la tabla son el id, precio, cuotas y cantidad (que en la tabla tengo un campo con la cantidad en uno).

Todos estos datos los quiero almacenar en una nueva tabla llamada compras (que esta parte ya la tengo implementada).

Cual es el problema??? es aqui donde nos enloquecemos, la funcion ver compras me muestra todos los productos que fueron seleccionados en la sesion, pero tengo que darle la posibilidad de cambiar la cantidad y que el total tambien cambie.
Por eso es que coloco un input en el dato cantidad

Código PHP:
echo "Cantidad: <input type='text' name='id' value='".$fila['cantidad']."><br/>"
ademas deberia colocar la cantidad para que calcule el total

Código PHP:
echo "Total: ".$fila['precio'] * $fila['cuotas']."<p>"
Ahora bien, necesito un boton para actualizar los datos con esas nuevas cantidades (y es aqui donde se me presentan todos los problemas).

Bueno espero que haya quedado claro, miren que estoy mas que agradecido por todo lo que han ayudado, y es mas si alguien le parece que tiene una idea mejor de hacer todo, puede plantearla, bueno saludos
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 11:35.