私はPHPに慣れていて、練習のために小額の通貨変換ページに取り組んでいます。それは一見、サーバー上で実行されていないことを、PHP/HTMLポストが期待どおりに機能しない
<?php
$originalAmount = $_POST["originalAmount"];
$convertedAmount = 0.00;
$currency1 = $_POST["currency1"];
$currency2 = $_POST["currency2"];
function convertCurrency($input, $origCurr, $convertCurr) {
if ($origCurr === 1){
if ($convertCurr === 2){
$convertedAmount = $input * 0.78;
return $convertedAmount;
}
elseif ($convertCurr === 3){
$convertedAmount = $input * 0.90;
return $convertedAmount;
}
else {
$convertedAmount = $input;
return $convertedAmount;
}
}
if ($origCurr === 2){
if ($convertCurr === 1){
$convertedAmount = $input * 1.29;
return $convertedAmount;
}
elseif ($convertCurr === 3){
$convertedAmount = $input * 1.16;
return $convertedAmount;
}
else {
$convertedAmount = $input;
return $convertedAmount;
}
}
if ($origCurr === 3){
if ($convertCurr === 2){
$convertedAmount = $input * 0.86;
return $convertedAmount;
}
elseif ($convertCurr === 1){
$convertedAmount = $input * 1.11;
return $convertedAmount;
}
else {
$convertedAmount = $input;
return $convertedAmount;
}
}
}
$convertedAmount = convertCurrency($originalAmount, $currency1, $currency2);
?>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Currency Converter</title>
<!--jQuery-->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<!--Bootstrap 3-->
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<!--Custom CSS-->
<link href="main.css" type="text/css" rel="stylesheet">
</head>
<body>
<div class="container">
<!--Header Row-->
<div class="row page-header">
<div class="col-xs-6">
<h1>Currenccy Converter</h1></div>
<div class="col-xs-6">
<p>Add items via the input below.
<br>Click to mark complete (Completed Items will be marked with a green background.)
<br>To delete a task, Click on the X.
<br>Double Click to edit the item, it will be moved to the add item box</p>
</div>
</div>
<!--Add Task/Input Row-->
<div class="row">
<div class="col-xs-12 well">
<h2 class="text-xs-center"><?php print $convertedAmount; ?></h2>
<form class="form-control" id="converterForm" action="index.php" method="post">
<select name="currency1" id="currency1">
<option value="zzz">Starting</option>
<option value="1">USD</option>
<option value="2">GBP</option>
<option value="3">EUR</option>
</select>
<select name="currency2" id="currency2">
<option value="zzz">Converted</option>
<option value="1">USD</option>
<option value="2">GBP</option>
<option value="3">EUR</option>
</select>
<div class="form-group">
<label for="originalAmount" id="origLabel">Amount:</label>
<input id="originalAmount" type="number" value="0.00" name="originalAmount">
<input type="submit" id="submit" name="submit" value="SUBMIT">
</div>
</form>
</div>
</div>
</div>
</body>
</html>
私の問題がある:私のPHPとHTMLコードがすべて「index.phpを」と呼ばれる1ページです。私は値としてecho
のphpで更新しようとしていたreadonly入力を持っていましたが、submitをクリックすると動作しませんでした。その後、入力をecho
を含むH2要素に置き換えました。
このページの目標は、javascript/ajaxの助けを借りずにHTMLとPHPを使用してすべてのアクションを完了することでした。
echo
の値が$converted
の値を返さない理由は何ですか?私はむしろH2要素を使うよりもCSSでreadonlyの入力とスタイルを使いたいと思っていますが、どちらかといえばうまくいくでしょう。
あなたが上達していることを楽しみにしています。ありがとう。
Ahh。ええ、私は== vs ===について知っていますが、私は間違ってそれを変換せずにint型を引っ張る入力型数値を使用していると仮定していました。 Doh。ありがとう! –