Foros del Web » Programando para Internet » PHP »

$_POST con contador

Estas en el tema de $_POST con contador en el foro de PHP en Foros del Web. Hola a todos tengo un problemón a ver si me podéis ayudar. Es sobre una factura, funciona todo bien pero a la hora de imprimir ...
  #1 (permalink)  
Antiguo 07/03/2009, 11:20
 
Fecha de Ingreso: junio-2008
Mensajes: 27
Antigüedad: 16 años, 5 meses
Puntos: 0
$_POST con contador

Hola a todos tengo un problemón a ver si me podéis ayudar.

Es sobre una factura, funciona todo bien pero a la hora de imprimir en pantalla llega el problema.

Código PHP:
               $repuesto1=$_POST[repuesto1];           $cantidad1=$_POST[cantidad1];               $descuento1=$_POST[descuento1];             $precio1=$_POST[precio1];
                
$repuesto2=$_POST[repuesto2];           $cantidad2=$_POST[cantidad2];               $descuento2=$_POST[descuento2];             $precio2=$_POST[precio2];
                
$repuesto3=$_POST[repuesto3];           $cantidad3=$_POST[cantidad3];               $descuento3=$_POST[descuento3];             $precio3=$_POST[precio3];
                
$repuesto4=$_POST[repuesto4];            $cantidad4=$_POST[cantidad4];              $descuento4=$_POST[descuento4];             $precio4=$_POST[precio4];
                
$repuesto5=$_POST[repuesto5];            $cantidad5=$_POST[cantidad5];              $descuento5=$_POST[descuento5];             $precio5=$_POST[precio5];
                
$repuesto6=$_POST[repuesto6];            $cantidad6=$_POST[cantidad6];              $descuento6=$_POST[descuento6];             $precio6=$_POST[precio6];
                
$repuesto7=$_POST[repuesto7];            $cantidad7=$_POST[cantidad7];              $descuento7=$_POST[descuento7];             $precio7=$_POST[precio7];
                
$repuesto8=$_POST[repuesto8];            $cantidad8=$_POST[cantidad8];              $descuento8=$_POST[descuento8];             $precio8=$_POST[precio8];
                
$repuesto9=$_POST[repuesto9];            $cantidad9=$_POST[cantidad9];              $descuento9=$_POST[descuento9];             $precio9=$_POST[precio9];
                
$repuesto10=$_POST[repuesto10];        $cantidad10=$_POST[cantidad10];         $descuento10=$_POST[descuento10];        $precio10=$_POST[precio10];

$a=$_POST[nrepuestos];
                
$n=1;

                while (
$n <= $a)
                {
                
$n++;
                echo 
"<tr>
                    <td height='29' width='145' valign='bottom'><font size='2'> Repuesto</font></td>
                    <td width='415' valign='bottom'><font size='2'>$repuesto.$n</font></td>
                    <td width='45' valign='bottom'><font size='2'>$cantidad.$n</font></td>
                    <td width='40' valign='bottom'><font size='2'> $descuento.$n</font></td>
                    <td width='90' valign='bottom'><font size='2'> $precio.$n &euro; </font></td>
                </tr>"

Como veis los repuestos, precios etc viene de atrás y los tengo igualados cada uno a una variable, pero para imprimir en la factura lo hago con un while.

$a=$_POST[nrepuestos]; estos son el numero de repuestos/piezas que tienen que salir en la factura, pueden ser 1, 2 , 4, 6 etc.

Al imprimir en el contador yo pongo $repuesto.$n para que la primera vez que pase valga $repuesto1 que seria lo mismo que $_POST[repuesto1];

Pero con el código que pongo en vez de salir un repuesto tipo, aceite, frenos etc sale sólo un número.

No se si me he explicado bien.

Saludos.
  #2 (permalink)  
Antiguo 07/03/2009, 11:31
 
Fecha de Ingreso: diciembre-2005
Mensajes: 50
Antigüedad: 18 años, 11 meses
Puntos: 0
Respuesta: $_POST con contador

lo mas facil seria usar algo como esto

<td width='415' valign='bottom'><font size='2'>$_POST["repuesto".$n]</font></td>

o si quieres puedes usar la funcion eval
  #3 (permalink)  
Antiguo 07/03/2009, 11:34
Avatar de Snd234  
Fecha de Ingreso: mayo-2007
Ubicación: Frente al PC
Mensajes: 413
Antigüedad: 17 años, 6 meses
Puntos: 2
Respuesta: $_POST con contador

Claro que sale solo un numero, si solo estas imprimiendo el valor de $n, y las variables $repuesto, $cantidad, $descuento y $precio no existen, por lo tanto su valor es nulo.

Lo que estas haciendo alli es concatenar dos variables, y lo que necesitas es acceder al valor de una variable.

La solucion seria que $repuesto1, $repuesto2, $repuestoX... lo conviertas a un arreglo llamado $repuesto, lo mismo con las otras variables, de esa forma, en el ciclo while luego imprimes el valor de la variable de esta forma

Código PHP:
$respuesto[$n]; 
antes, eso si, dberias guardar tus datos en el arreglo:

Código PHP:
$repuesto[] = $_POST[repuesto1];
$repuesto[] = $_POST[repuesto2];
$repuesto[] = $_POST[repuesto3];
$repuesto[] = $_POST[repuesto4];
$repuesto[] = $_POST[repuesto5];
... 
De hecho, aun mas facil seria:

Código PHP:
for($i 0$i 10$i++) {
    
$repuesto[$i] = $_POST['repuesto'.$i];

__________________
KIBIT.cl
  #4 (permalink)  
Antiguo 07/03/2009, 12:21
 
Fecha de Ingreso: junio-2008
Mensajes: 27
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: $_POST con contador

Siiiiiiii, muchas gracias a los dos, ya lo he conseguido.

lizardopc he intentado primero lo que decías pero me daba un error de sintaxis... y lo de la función eval me he informado pero era demasiado compleja.

Snd234 muchas gracias de nuevo, me has salvado la vida académicamente hablando xD ya que me han adelantado la entrega del proyecto en el instituto al lunes y me he encontrado con este fallo hoy mismo.

He usado la última forma que es la más sencilla y la que mejor entiendo.

Tendría que haber preguntado esto antes de ponerme a hacer el script que calculaba los precios, descuentos etc que tiene 300 líneas de código y de esta manera hubiesen sido 100

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 14:05.