elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Ayuda cotizador
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda cotizador  (Leído 1,810 veces)
vanus17

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Ayuda cotizador
« en: 16 Julio 2012, 21:23 pm »

Hola estuve haciendo un cotizador pero me trabe en la última parte. Ya probe todo pero mi nivel no me deja encontrar la solución. Tengo un formulario en el que se cargan ciertos parametro para cotizar, hice dos switch pero en el segundo no emporta que opción elija me tira el mismo resultado. Ojala puedan ayudarme ya que estoy con esto hace un rato largo y no logro que funcione como necesito....

FORMULARIO

<html>
<head>
<title>formulario</title>
</head>
<body>
<form method="post" action="pagina3.php">


Ingrese el valor por lista: <br>
<input type="text" name="lista">
<br>
Ingrese la cantidad de cuotas pagas: <br>
<input type="text" name="cuotas">
<br>
Tipo de plan<br>
<select name="tipo">
<option value="cien">100%</option>
<option value="setenta">70/30</option>
<option value="cinco">75/25</option>
<option value="sesenta">60/40</option>

</select>
Estado del plan<br>
<select name="estado">
<option value="adjudicado">adjudicado</option>
<option value="rescindido">rescindido</option>
<option value="ahorrista">ahorrista</option>
</select>
<br>


<input type="submit" value="pedir cotización">
</form>
</body>
</html>


PAGINA PHP




<html>
<head>
<title>Cotizador</title>
</head>
<body>
<?php
$lista = $_POST['lista'];
$cuotas = $_POST['cuotas'];
$estado = $_POST['estado'];
$tipo = $_POST['tipo'];


$indice1=10;
$indice2=20;
$indice3=30;
$indice4=40;

$valorc=$lista/84;

switch ($tipo)
{
case "cien":
$valor1=round($valorc * 1 * $indice1 * $cuotas);
break;
case "setenta":
$valor1=round($valorc * 0.7 * $indice2 * $cuotas);
break;
case "cinco":
$valor1=round($valorc * 0.7 * $indice2 * $cuotas);
break;
case "sesenta":
$valor1=round($valorc * 0.60 * $indice4 * $cuotas);
break;

}


switch ($estado)
{
case ($estado="adjudicado" && $cuotas >= 30):

$resultado=($valor1 + 1000);

break;

case ($estado="adjudicado" && $cuotas <= 30):

$resultado=($valor1 + 500);

break;

case ($estado="rescindido" && $cuotas >= 13):

$resultado=($valor1 + 400);

break;

case ($estado="rescindido" && $cuotas <= 13):

$resultado=($valor1 + 200);

break;

case ($estado="ahorrista" && $cuotas >= 12):

$resultado=($valor1 + 100);

break;

case ($estado="ahorrista" && $cuotas <= 12):

$resultado=($valor1 + 300);

break;

}
//Estado del plan? aca no me esta diferenciando la cuenta para el plan elegido


echo "Su cotizacion: <b>$resultado</b><br>";


?>


En línea

Spider-Net


Desconectado Desconectado

Mensajes: 1.165


Un gran poder conlleva una gran responsabilidad


Ver Perfil WWW
Re: Ayuda cotizador
« Respuesta #1 en: 17 Julio 2012, 17:31 pm »

O usas un if anidado o usas un switch pero no uses los dos combinados. No me extraña que no funcione xD.

El switch es para comparar valores fijos como hiciste en el primero: case "cien", case "setenta" o lo que sea, pero si necesitas hacer comparaciones y demás usa if anidados. Algo así:

Código
  1. if($estado=="adjudicado" && $cuotas >= 30){
  2.   $resultado=($valor1 + 1000);
  3. }elseif($estado=="adjudicado" && $cuotas <= 30){
  4.   $resultado=($valor1 + 500);
  5. }elseif($estado=="rescindido" && $cuotas >= 13){
  6.   $resultado=($valor1 + 400);
  7. }

Y por cierto, las comparaciones se hacen con doble igual ==, un solo igual es para asignaciones.


« Última modificación: 17 Julio 2012, 17:33 pm por Spider-Net » En línea

darkvidhack

Desconectado Desconectado

Mensajes: 159


Be Linux my friend...


Ver Perfil WWW
Re: Ayuda cotizador
« Respuesta #2 en: 18 Julio 2012, 23:52 pm »

Si no recuerdo mal, al final de los switch debes poner un 'default' que se utiliza en caso de que el valor de la variable no coincida con tus 'case', mirate la implementación de esta estructura ;)

Saludos.
En línea

live and let die

la duda es la base de todo conocimiento
Spider-Net


Desconectado Desconectado

Mensajes: 1.165


Un gran poder conlleva una gran responsabilidad


Ver Perfil WWW
Re: Ayuda cotizador
« Respuesta #3 en: 19 Julio 2012, 18:39 pm »

El default es solo opcional, no obligatorio.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines