PHP - Formulario PHP

   
Vista:

Formulario PHP

Publicado por manu (9 intervenciones) el 30/10/2014 13:28:07
buenos dias programadores !
tengo un problemilla, este es mi codigo:

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
<html>
	<head>
		<title>Formulario recursivo</title>
	</head>
<body>
 
	<form method="post" <?php echo $_SERVER['PHP_SELF']; ?>">
		<ul>
                    <li>
                        <label for="core">Cores</label>
                        <select name="core" class="inputs">
                            <option value="1">1</option>
                            <option value="2">2</option>
                            <option value="3">3</option>
                        </select>
                    </li>
                    <li>
                        <label for="ram">RAM</label>
                        <select name="ram" class="inputs">
                            <option value="1">1</option>
                            <option value="2">2</option>
                            <option value="3">3</option>
                        </select>
                    </li>
                    <li>
                        <label for="hd">Disco Duro</label>
                        <select name="hd" class="inputs">
                            <option value="100">100GB</option>
                            <option value="200">200GB</option>
                            <option value="300">300GB</option>
                        </select>
                    </li>
                    <li>
                        <label for="anchoBanda">Ancho Banda</label>
                        <select name="anchoBanda" class="inputs">
                            <option value="10">10MB</option>
                            <option value="30">30MB</option>
                            <option value="100">100MB</option>
                        </select>
                    </li>
                    <li>
                        <label for="so">Sistema Operativo</label>
                        <select name="so" class="inputs">
                            <option value="windows">Windows</option>
                            <option value="linux">Linux</option>
                        </select>
                    </li>
                    <li>
                        <input type="submit" value="Enviar" name="enviar">
                    </li>
				</ul>
			</FORM>
<?php
	if(isset($_REQUEST['enviar'])) //preguntamos si el botón ya fue pulsado o presionado
	{
		$numeroCore = $_POST['core'];
		$numeroRam = $_POST['ram'];
		$hd = $_POST['hd'];
		$anchoBanda = $_POST['anchoBanda'];
		$so = $_POST['so'];
		
		$link = mysqli_connect('localhost','root','') or die('Error en la conexion.');
		$db = mysqli_select_db($link, 'Calculador');
			
		//CALCULAR CORE
		//HACEMOS LA CONSULTA
		$precioCore = mysqli_query($link, "SELECT precio
										FROM productos
										WHERE nombre='core'");
		//RECORREMOS LOS CORE Y MOSTRAMOS EL PRECIO TOTAL
		while($fila = mysqli_fetch_array($precioCore))
		{
			$precioTotalCore = $fila['precio'] * $numeroCore;
			//echo 'Precio total de core: ' . $precioTotalCore . '<br>';
		}
			
		//CALCULAR RAM
		//HACEMOS LA CONSULTA
		$precioRam = mysqli_query($link, "SELECT precio
										FROM productos
										WHERE nombre='ram'");
		//RECORREMOS LAS RAM Y MOSTRAMOS EL PRECIO TOTAL
		while($fila = mysqli_fetch_array($precioRam))
		{
			$precioTotalRam = $fila['precio'] * $numeroRam;
			//echo 'Precio total de RAM: ' . $precioTotalRam . '<br>';
		}
			
		//CALCULAR HD
		//HACEMOS LA CONSULTA
		$precioHD = mysqli_query($link, "SELECT precio
										FROM productos
										WHERE nombre='hd'");
		//RECORREMOS HD Y MOSTRAMOS EL PRECIO TOTAL
		while($fila = mysqli_fetch_array($precioHD))
		{
			$precioTotalHD = $fila['precio'] * $hd;
			//echo 'Precio total de HD: ' . $precioTotalHD . '<br>';
		}
			
		//CALCULAR ANCHO BANDA
		//HACEMOS LA CONSULTA
		$precioAnchoBanda = mysqli_query($link, "SELECT precio
										FROM productos
										WHERE nombre='ancho_banda'");
		//RECORREMOS ANCHO DE BANDA Y MOSTRAMOS EL PRECIO TOTAL
		while($fila = mysqli_fetch_array($precioAnchoBanda))
		{
			$precioTotalAnchoBanda = $fila['precio'] * $anchoBanda;
			//echo 'Precio total de Ancho de Banda: ' . $precioTotalAnchoBanda . '<br>';
		}
			
		//CALCULAR SO
		//HACEMOS LA CONSULTA
		$precioSO = mysqli_query($link, "SELECT precio
										FROM productos
										WHERE nombre='" . $so . "'");
		//RECORREMOS LOS CORE Y MOSTRAMOS EL PRECIO TOTAL
		while($fila = mysqli_fetch_array($precioSO))
		{
			$precioTotalSO = $fila['precio'];
			//echo 'Precio total del Sistema Operativo: ' . $precioTotalSO . '<br>';
		}
			
		//PRECIO TOTAL DEL SERVICIO
		$precioTotalServicio = $precioTotalCore + $precioTotalRam + $precioTotalHD + $precioTotalAnchoBanda + $precioTotalSO;
		mysqli_close($link);//CERRAMOS LA BD
		
		echo "Precio total: " . $precioTotalServicio;
	}
		?>
	</body>
</html>

tengo que hacer un calculador de hosting, es un formulario donde se me pide cuantos cores tengo, cuantos GB de ram, cuando disco duro, etc.
lo que quiero hacer es que cuando le de a calcular, me muestre el precio total(que lo hace) pero que se me guarde lo que he elegido, por ejemplo si eligo 3GB de RAM, se queden los 3GB, no se me vuelva a 1GB que es lo que me pasa.

saludos
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

Formulario PHP

Publicado por xve (5520 intervenciones) el 30/10/2014 18:35:17
Hola Manu, para ello, tienes que poner el valor selected al campo seleccionado...

Yo lo haría algo así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$valores=array(100=>"100GB", 200=>"200GB", 300=>"300GB");
?>
<select name="hd" class="inputs">
	<?php
	foreach($valores as $key=>$value)
	{
		if($_POST["hd"]==$key)
		{
			echo "<option value='".$key."' selected>".$value."</option>";
		}else{
			echo "<option value='".$key."'>".$value."</option>";
		}
	}
	?>
</select>

Coméntanos si te sirve, ok?
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

Formulario PHP

Publicado por manu (9 intervenciones) el 12/11/2014 10:45:55
buenos dias,
he intentado poner tu codigo y me ha quedado asi:

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
<div class="container">
    <h1><u>Calculador Hosting</u></h1>
    <?php
        $valoresCore = array(1=>"1", 2=>"2", 3=>"3");
        $valoresRAM = array(1=>"1", 2=>"2", 3=>"3");
        $valoresHD = array(100=>"100GB", 200=>"200GB", 300=>"300GB");
        $valoresAB = array(10=>"10MB", 30=>"30MB", 50=>"50MB");
        $valoresSO = array(windows=>"windows", linux=>"linux");
 
        if(!$_POST)
        {
    ?>
 
    <FORM ACTION="index4.php" METHOD="POST">
        <ul>
            <li>
                <label for="core">Cores</label>
                <select name="core" class="inputs">
                <?php
                    foreach($valoresCore as $key=>$value)
                    {
                        if($_POST["core"]==$key)
                        {
                            echo "<option value='".$key."' selected>".$value."</option>";
                        }
                        else
                        {
                            echo "<option value='".$key."'>".$value."</option>";
                        }
                    }
                ?>
                </select>
            </li>

he creado las variables $valoresCore, ram, hd, ab y so, que seria tu variable $valroes que seria como la de mi $valoresHD.
luego compruebo si devuelvo algo con el ' if(!$_POST) ' muestro los select cambiados por tu codigo.
luego es el mismo codigo que el que yo pase.

no se si lo he echo bien o el codigo no funciona.

podrias revisarlo?
gracias por la ayuda
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