PHP - Formulario no me da el resultado que quiero.

 
Vista:
sin imagen de perfil

Formulario no me da el resultado que quiero.

Publicado por emeteria (2 intervenciones) el 23/10/2013 11:51:47
Necesito que este formulario me envié el resultado como lo pongo al final, o algo parecido. No logro dar con lo que quiero

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<html>
<head>
<title>Mi pagina web</title>
<script>
 
function calculo(cantidad,precio,inputtext,totaltext){
 
	/* Parametros:
	cantidad - entero con la cantidad
	precio - entero con el precio
	inputtotal - nombre del elemento del formulario donde ira el total
	*/
 
	// Calculo del subtotal
	subtotal = precio*cantidad;
	inputtext.value=subtotal;
 
	//Actualizar el total
	// Utilizamos el eval. Ya que el valor es un texto y si lo tratamos como tal
	// es como si estuviesemos manipulando una cadena.
	total = eval(totaltext.value);
	totaltext.value = total + subtotal;
}
</script>
<style type="text/css">
.negrita {
	font-weight: bold;
}
</style>
<style type="text/css">
 
</style>
<body>
<h1>ELIGE TUS PRODUCTOS</h1>
<form action="mailto:elabuelo1x2@hotmail.com" method="post" enctype="text/plain">
  <table width="500">
    <tr>
      <td width="197" bgcolor="#D4FFAA"><div align="center"><strong>Productos</strong></div></td>
      <td width="72" align="left" bgcolor="#D4FFAA" class="negrita">Cantidad</td>
      <td width="66" bgcolor="#D4FFAA" class="negrita">Precio/Ud</td>
      <td width="109" bgcolor="#D4FFAA" class="negrita">Total</td>
    </tr>
    <tr>
      <td bgcolor="#D4FFAA"><strong>Camiseta</strong></td>
      <td align="left" bgcolor="#D4FFAA"><input type="text" size="3" id="Camiseta" value="0" onChange="calculo(this.value,precioCamiseta.value,totalCamiseta,total);">
        uds</td>
      <td bgcolor="#D4FFAA"><input type="hidden" id="precioCamiseta" value="42"/>
        42 &euro;</td>
      <td bgcolor="#D4FFAA"><input type="text" size="8" id="totalCamiseta" value="0">
        &euro;</td>
    </tr>
    <tr>
      <td bgcolor="#D4FFAA"><strong>Sudadera</strong></td>
      <td align="left" bgcolor="#D4FFAA"><input type="text" size="3" id="Sudadera" value="0" onChange="calculo(this.value,precioSudadera.value,totalSudadera,total);">
        uds</td>
      <td bgcolor="#D4FFAA"><input type="hidden" id="precioSudadera" value="35"/>
        35 &euro;</td>
      <td bgcolor="#D4FFAA"><input type="text" size="8" id="totalSudadera" value="0">
        &euro;</td>
    </tr>
    <tr>
      <td bgcolor="#D4FFAA"><strong>Pantalon</strong></td>
      <td align="left" bgcolor="#D4FFAA"><input type="text" size="3" id="Pantalon" value="0" onChange="calculo(this.value,precioPantalon.value,totalPantalon,total);">
        uds</td>
      <td bgcolor="#D4FFAA"><input type="hidden" id="precioPantalon" value="23"/>
        23 &euro;</td>
      <td bgcolor="#D4FFAA"><input type="text" size="8" id="totalPantalon" value="0">
        &euro;</td>
    </tr>
 
    <td height="81" bgcolor="#D4FFAA"><strong>Total:</strong></td>
      <td align="left" bgcolor="#D4FFAA"></td>
      <td bgcolor="#D4FFAA"></td>
      <td bgcolor="#D4FFAA"><p><br/>
          <input type="text" id="total"size="10"
  value="0">
          &euro;</p>
        <p>&nbsp;</p></td>
    </tr>
  </table>
  <input name="Enviar" type="submit" id="Enviar" value="Enviar informaci&oacute;n">
  <input name="Borrar" type="reset" id="Borrar" value="Borrar informaci&oacute;n">
</form>
 
</body>
</html>
-------------------------------------------------------------------------------------------------------------------
Productos Cantidad Precio/ud Total
Camiseta 2 40 € 80 €
Sudadera 3 30 € 90 €
Pantalon 5 25 € 125 €

TOTAL: 295 €
Me gustaría que el resultado fuera algo parecido a esto:
2 Camiseta a 40 €=80 €
3 Sudadera a 30 €=90 €
5 Pantalon a 25 €=125 €
Total Compra: 295 €
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Formulario no me da el resultado que quiero.

Publicado por xve (6935 intervenciones) el 23/10/2013 22:26:46
Hola Emeteria, la verdad es que con el action hacia una dirección de correo no lo he probado nunca... yo te tendría que decir que dependerá de los navegadores... por ejemplo, lo he probado en chrome sobre Linux y no pone ninguna valor en el correo...

Yo lo que haría, seria preparar el correo desde PHP, y desde ahí mismo enviar el correo al usuario.

Siento no poder serte de mas ayuda de esta manera.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Formulario no me da el resultado que quiero.

Publicado por Elier (92 intervenciones) el 24/10/2013 20:52:25
Para que estos cambios que he realizado te funcionen tienes que tener instalado PHP en tu servidor Web y configurar en el archivo php.ini el nombre de tu servidor de correo

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = tuservidordecorreo.com
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = [email protected]

luego copias este script solicitud.php para tu servidor web y pruebas

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<?php
$productos = array(
	'0' => array('Producto' => 'Camiseta', 'Precio' => 42),
	'1' => array('Producto' => 'Sudadera', 'Precio' => 35),
	'2' => array('Producto' => 'Pantalon', 'Precio' => 23),
	);
$email_content = "";
if(isset($_POST['Enviar']))
{
 
	$titulo_pedido = "<h1>Solicitud de Productos</h1><br>";
 	$pie_pedido = "<br><p>Gracias por su visita!</p>";
 
 	$email_content =   $email_content.$titulo_pedido;
    $total = 0;
	foreach ($productos as $producto) {
		$nombre_producto = $producto['Producto'];
		$cantidad = $_POST["$nombre_producto"];
		if(!empty($cantidad)){
			$subtotal = ($cantidad*$producto['Precio']);
			$producto_detalle = $cantidad." ".$producto['Producto']." a ". $producto['Precio']."&euro; = ".$subtotal."  &euro; ";
			 $email_content =   $email_content.$producto_detalle."<br>";
			 $total = $total + $subtotal;
		}
	}
  	$email_content = $email_content."<br>Total:$total";
 
	$email_content =   $email_content.$pie_pedido;
 
	//enviar Email
 
	$para  = 'elabuelo1x2@hotmail.com';
 
	// subject
	$titulo = 'Solicitud de Productos';
 
 
	// Para enviar un correo HTML mail, la cabecera Content-type debe fijarse
	$cabeceras  = 'MIME-Version: 1.0' . "\r\n";
	$cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
 
	// Tienes que especificar la direccion de tu servidor de correo
	$cabeceras .= 'From: Tienda Online <ventasonline@tuservidordecorreo.com>' . "\r\n";
 
	// Mail it
	if (mail($para, $titulo, $email_content, $cabeceras))
	{
		echo $email_content;
		echo "<p><strong>La solicitud ha sido enviada!<strong></p>";
 
	}
}
 
else {?>
<html>
	<head>
		<title>Mi pagina web</title>
		<script>
			function calculo(cantidad,precio,inputtext,totaltext)
			{
				/* Parametros: cantidad - entero con la cantidad
				 * precio - entero con el precio
				 * inputtotal - nombre del elemento del formulario donde ira el total 
				 * */
 
				 // Calculo del subtotal subtotal = precio*cantidad; 
				 subtotal = cantidad * precio;
				 inputtext.value=subtotal;
				 //Actualizar el total 
				 // Utilizamos el eval. Ya que el valor es un texto y si lo tratamos como tal 
				 // es como si estuviesemos manipulando una cadena. 
				 total = eval(totaltext.value);
				 totaltext.value = total + subtotal;
			}
		</script>
		<style type="text/css">
		 .negrita { font-weight: bold; } <
		 /style> <
		 style type="text/css">
		 </style>
		 <body>
		 	<h1>ELIGE TUS PRODUCTOS</h1>
			<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
		 		 <table width="500">
		 		 	<tr>
		 		 		<td width="197" bgcolor="#D4FFAA">
		 		 			<div align="center">
		 		 				<strong>Productos</strong>
		 		 			</div>
		 		 		</td>
		 		 		<td width="72" align="left" bgcolor="#D4FFAA" class="negrita">Cantidad</td>
		 		 		<td width="66" bgcolor="#D4FFAA" class="negrita">Precio/Ud</td>
		 		 		<td width="109" bgcolor="#D4FFAA" class="negrita">Total</td>
		 		 	</tr>
		 		 	<?php foreach ($productos as $producto) { ?>
		 		 		<tr>
		 		 		<td bgcolor="#D4FFAA">
		 		 			<strong><?php echo $producto['Producto']?></strong>
		 		 		</td>
		 		 		<td align="left" bgcolor="#D4FFAA">
		 		 			<input type="text" size="3" name="<?php echo $producto['Producto']?>" id="<?php echo $producto['Producto']?>" value="0" onChange="<?php echo "calculo(this.value,".$producto['Precio'].",total".$producto['Producto'].",total);"?>"> UDS
		 		 		</td>
		 		 		<td bgcolor="#D4FFAA">
		 		 			<input type="hidden" id="precio<?php echo $producto['Producto']?>" value="<?php echo $producto['Precio']?>"/> <?php echo $producto['Precio']?> &euro;
		 		 		</td>
		 		 		<td bgcolor="#D4FFAA">
		 		 			<input type="text" size="8" id="total<?php echo $producto['Producto']?>" value="0"> &euro;
		 		 		</td>
		 		 	</tr>
					<?php } ?>
		 		 		<td height="81" bgcolor="#D4FFAA">
		 		 				<strong>Total:</strong>
		 		 			</td>
		 		 			<td align="left" bgcolor="#D4FFAA">
 
		 		 			</td>
		 		 			<td bgcolor="#D4FFAA">
 
		 		 			</td>
		 		 			<td bgcolor="#D4FFAA">
		 		 				<p>
		 		 					<br/>
		 		 					<input type="text" id="total"size="10" value="0"> &euro;
		 		 				</p>
		 		 				<p>&nbsp;</p>
		 		 			</td>
		 		 		</tr>
		 		 	</table>
		 		 	<input name="Enviar" type="submit" id="Enviar" value="Enviar informaci&oacute;n">
		 		 	<input name="Borrar" type="reset" id="Borrar" value="Borrar informaci&oacute;n">
			</form>
		</body>
</html>
<?php } ?>

Espero que te funcione
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Formulario no me da el resultado que quiero.

Publicado por emeteria (2 intervenciones) el 12/05/2014 20:40:08
Elier:
Muchas gracias por haberte molestado y darme una solución, todavía no lo he probado pero espero que funcione bien.
De todas las maneras te agradezco, el tiempo que has empleado y el favor que me has hecho sinceramente.
Emeteria.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar