2014-03-06 37 views
0

我是PHP的新手,所以我不确定我做错了什么,但它似乎只有最后,如果执行语句是美元兑美元,无论我选择什么货币。使用PHP的货币转换器

我需要使它转换FROM和TO币种,我选择和转换得到显示在amount_output框中。而且货币和我输入的坐标仍保留在结果中,而不会重置。

任何帮助它非常感谢。

<?php     
        $amount_input = filter_input(INPUT_POST, 'amount_input'); 
        $currency1 = filter_input(INPUT_POST, 'currency1'); 
        $currency2 = filter_input(INPUT_POST, 'currency2'); 

        if ($currency1="CAD" AND $currency2="CAD") 
        { 
         $amount_output = $amount_input*1.0; 
        } 

        if ($currency1="CAD" AND $currency2="EUR") 
        { 
         $amount_output = $amount_input*0.624514066; 
        }  

        if ($currency1="CAD" AND $currency2="GBP") 
        { 
         $amount_output = $amount_input*0.588714763; 
        }  

        if ($currency1="CAD" AND $currency2="USD") 
        { 
         $amount_output = $amount_input*0.810307; 
        }  
        if ($currency1="EUR" AND $currency2="CAD") 
        { 
         $amount_output = $amount_input*1.601244959; 
        } 

        if ($currency1="EUR" AND $currency2="EUR") 
        { 
         $amount_output = $amount_input*1.0; 
        }  

        if ($currency1="EUR" AND $currency2="GBP") 
        { 
         $amount_output = $amount_input*0.942676548; 
        }  

        if ($currency1="EUR" AND $currency2="USD") 
        { 
         $amount_output = $amount_input*1.2975; 
        } 

        if ($currency1="GBP" AND $currency2="CAD") 
        { 
         $amount_output = $amount_input*1.698615463; 
        } 

        if ($currency1="GBP" AND $currency2="EUR") 
        { 
         $amount_output = $amount_input*1.060809248; 
        }  

        if ($currency1="GBP" AND $currency2="GBP") 
        { 
         $amount_output = $amount_input*1.0; 
        }  

        if ($currency1="GBP" AND $currency2="USD") 
        { 
         $amount_output = $amount_input*1.3764; 
        } 

        if ($currency1="USD" AND $currency2="CAD") 
        { 
         $amount_output = $amount_input*1.234100162; 
        } 

        if ($currency1="USD" AND $currency2="EUR") 
        { 
         $amount_output = $amount_input*0.772200772; 
        }  

        if ($currency1="USD" AND $currency2="GBP") 
        { 
         $amount_output = $amount_input*0.726532984; 
        }  

        if ($currency1="USD" AND $currency2="USD") 
        { 
         $amount_output = $amount_input*1.0; 
        } 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<!-- 
To change this license header, choose License Headers in Project Properties. 
To change this template file, choose Tools | Templates 
and open the template in the editor. 
--> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <title>F/X Calculator</title> 
     <link href="fxCalcStyles.css" rel="stylesheet" type="text/css" /> 

    </head> 
    <body>   
      <h1>Money Banks F/X Calculator</h1> 
      <hr></hr> 
      <form action="fxCalc.php" method="post">     
        <select name="currency1"> 
         <option value="CAD">CAD</option> 
         <option value="EUR">EUR</option> 
         <option value="GBP">GBP</option> 
         <option value="USD">USD</option> 
        </select> 
        <input name="amount_input" type="text"/> 
        <select name="currency2"> 
         <option value="CAD">CAD</option> 
         <option value="EUR">EUR</option> 
         <option value="GBP">GBP</option> 
         <option value="USD">USD</option> 
        </select> 
        <input name="amount_output" type="text" value="<?php echo $amount_output ?>" readonly="readonly"/> 

       <br /> 

        <input type="submit" name="submit" value="Convert"></input> 
        <input type="reset" name="reset" value="Reset"></input> 

      </form>       
    </body> 
</html> 
+0

使用转换率的2-d阵列会轻松很多 –

+0

或碱在单个阵列 – Sparkup

回答

5

由于您是PHP的新手,我并不试图向您展示您的货币转换器的复杂方式。现在你需要学习基础知识,而不应该专注于使用高级策略来简化代码。您的代码是一个很好的一个,将很好地工作,如果两项调整是由:

  1. 使用==(比较运算),而不是=(赋值运算符),当你比较两个值。
  2. 使用if/else if/else结构而不是一系列不连贯的if结构。

现在你的代码变成:

<?php 
$amount_input = filter_input(INPUT_POST, 'amount_input'); 
$currency1 = filter_input(INPUT_POST, 'currency1'); 
$currency2 = filter_input(INPUT_POST, 'currency2'); 

if ($currency1 == "CAD" AND $currency2 == "CAD") 
{ 
    $amount_output = $amount_input*1.0; 
} 

else if ($currency1 == "CAD" AND $currency2 == "EUR") 
{ 
    $amount_output = $amount_input*0.624514066; 
}  

else if ($currency1 == "CAD" AND $currency2 == "GBP") 
{ 
    $amount_output = $amount_input*0.588714763; 
}  

else if ($currency1 == "CAD" AND $currency2 == "USD") 
{ 
    $amount_output = $amount_input*0.810307; 
}  

else if ($currency1 == "EUR" AND $currency2 == "CAD") 
{ 
    $amount_output = $amount_input*1.601244959; 
} 

else if ($currency1 == "EUR" AND $currency2 == "EUR") 
{ 
    $amount_output = $amount_input*1.0; 
}  

else if ($currency1 == "EUR" AND $currency2 == "GBP") 
{ 
    $amount_output = $amount_input*0.942676548; 
}  

else if ($currency1 == "EUR" AND $currency2 == "USD") 
{ 
    $amount_output = $amount_input*1.2975; 
} 

else if ($currency1 == "GBP" AND $currency2 == "CAD") 
{ 
    $amount_output = $amount_input*1.698615463; 
} 

else if ($currency1 == "GBP" AND $currency2 == "EUR") 
{ 
    $amount_output = $amount_input*1.060809248; 
}  

else if ($currency1 == "GBP" AND $currency2 == "GBP") 
{ 
    $amount_output = $amount_input*1.0; 
}  

else if ($currency1 == "GBP" AND $currency2 == "USD") 
{ 
    $amount_output = $amount_input*1.3764; 
} 

else if ($currency1 == "USD" AND $currency2 == "CAD") 
{ 
    $amount_output = $amount_input*1.234100162; 
} 

else if ($currency1 == "USD" AND $currency2 == "EUR") 
{ 
    $amount_output = $amount_input*0.772200772; 
}  

else if ($currency1 == "USD" AND $currency2 == "GBP") 
{ 
    $amount_output = $amount_input*0.726532984; 
}  

else if ($currency1 == "USD" AND $currency2 == "USD") 
{ 
    $amount_output = $amount_input*1.0; 
} 
?> 

编码愉快!

+0

亲爱downvoter对美元的所有货币,可我知道什么是错我的回答? –

1

脚本可以长得非常容易使用数组,你就不会有这么多的指令得到的问题:

<?php     
       $amount_input = filter_input(INPUT_POST, 'amount_input'); 
       $currency1 = filter_input(INPUT_POST, 'currency1'); 
       $currency2 = filter_input(INPUT_POST, 'currency2'); 

       $currencies = array(); 
       $currencies['CAD'] = array(
        'CAD' => 1, 
        'EUR' => 0.624514066, 
        'GBP' => 0.588714763, 
        'USD' => 0.810307 
       ); 

       $amount_output = $amount_input*$currencies[$currency1][$currency2]; 

?> 
0

这将是更容易维护,基地对美元的所有货币然后执行以下操作:

$currency1 = filter_input(INPUT_POST, 'currency1'); 
$currency2 = filter_input(INPUT_POST, 'currency2'); 
$amount_input = filter_input(INPUT_POST, 'amount_input'); 

$currencies = array(
    'USD' => 1, 
    'CAD' => 1.234100162, 
    'EUR' => 0.772200772, 
    'GDP' => 0.726532984 
); 

$amount_output = ($amount_input/$currencies[$currency1])*$currencies[$currency2];