2016-11-17 13 views
0

申し訳ありませんが、これは本当に基本的なプログラミングの知識ですが、それは私を助けるために瞬間を取る必要がある場合。私はすでに多くのことを試して検索しましたが、うまく動作することはできません。

私はそれでシンプルな価格でconfig.phpファイルを編集します設定ページを作ってるんだhttp://www.hungrypiranha.org/make-a-website/online-calculator

からチュートリアルをやっています。私はこれを5に設定しました。後でユーザーインターフェイスで編集可能にする方法をいくつか試します。一歩ずつ。

<?php 
//config file 
$price = "5"; 
?> 

次に私は、index.phpページに電卓スクリプトを置く が、私は他のファイルから$price価値を引き出し、フォームテーブルにそれを載せていきたいと思います。私が試してみても、フォームテーブルには入りません。 これは、コード<?php echo $price; ?>をどこにでも置くことができますが、フォームテーブルには入りません。

<html> 
<head> 
    <title>Net Calc</title> 
    <link rel="stylesheet" href="styles.css"> 
    <meta name="viewport" content="width=300"> 
</head> 
<body> 

<div> 
<?php include("config.php"); ?> 
<?php echo '<p>Netting Price Calculator</p>'; ?> 
<p>Current price per m2 is $<label><?=$price?></label></br> 
<a href="settings.php">link to Settings</a> 

<?php 
if (isset($_POST['valuea'])) $valuea = $_POST['valuea']; 
if (isset($_POST['valueb'])) $valueb = $_POST['valueb']; 
$answer = $valuea * $valueb * $price; 

echo <<<_END 
<form method='post' action=''> 
<table border='0' width='300px' cellpadding='3' cellspacing='1' class="table"> 
<tr class="calcheading"><td colspan="2"><strong>Netting Price Calculator</strong></td></tr> 
<tr class="calcrow"><td>Height</td><td align="left"><input type='text' name='valuea' value="$valuea"/></td></tr> 
<tr class="calcrow2"><td>Width:</td><td align="left"><input type='text' name='valueb' value="$valueb"/></td></tr> 
<tr class="calcrow"><td>Price:</td><td align="left"><?php echo $price; ?></td></tr> 
<tr class="submit"><td colspan="2"><input type='submit' value='Calculate'/><input type='reset' value='Reset'/></td></tr> 
_END; 
?> 

<tr class="calcrow"> 
<td><i>Total:</td> 
<td align="left">$<?php echo $answer; ?></td></i> 
</tr> 
</table> 
</form> 

</br><?=$price?> 
</br><?php echo $price; ?> 
</br> 
</div> 
</body> 
</html> 

私が$price変数に入力したものは、ページに表示したくないものです。 ご理解いただきたいと思います。より良い電卓のチュートリアルを私が求めていることが分かったら教えてください。

+0

おかげで運。これは、ページの上部または下部でうまく動作しますが、テーブル呼び出し内ではうまく動作しません。 –

+0

http://php.net/manual/en/function.error-reporting.phpのエラー報告はあなたにすべての通知を投げているはずです。 –

+0

今すぐ;ここでの問題は、あなたがheredocの中にいることと、この '<?php echo $ price; HTMLソースを表示すると、 '<?php echo $ price;という文字列が表示されます。 ?> '。 '<?php echo;を削除するだけです。 ?> 'そして' $ price'をフォームの中から守ります。残りの部分は、あなた自身の世話をする必要があります。あなたの答えはこれです(一言で言えば)。 –

答えて

1

誰もが読みやすいコードを書く方が良いでしょう。 また、html outsite phpタグを書くことをお勧めします。簡単にデバッグできるようになります。

問題はecho <<<_ENDで発生します。だから、私はこのようにすることをお勧めします。

<?php 
     if (isset($_POST['valuea'])) $valuea = $_POST['valuea']; 
     if (isset($_POST['valueb'])) $valueb = $_POST['valueb']; 
     $answer = $valuea * $valueb * $price; 

     //your form was here but I move it outside of the php tag. 

?> 

<form method='post' action=''> 
     <table border='0' width='300px' cellpadding='3' cellspacing='1' class="table"> 
      <tr class="calcheading"> 
       <td colspan="2"> 
        <strong>Netting Price Calculator</strong> 
       </td> 
      </tr> 
      <tr class="calcrow"> 
       <td>Height</td> 
       <td align="left"> 
        <input type='text' name='valuea' value="<?php echo $valuea?>"/> 
       </td> 
     </tr> 
     <tr class="calcrow2"> 
       <td>Width:</td> 
       <td align="left"> 
       <input type='text' name='valueb' value="<?php $valueb?>"/> 
       </td> 
     </tr> 
     <tr class="calcrow"> 
       <td>Price:</td> 
       <td align="left"><?php echo $price; ?></td> 
     </tr> 
     <tr class="submit"> 
       <td colspan="2"><input type='submit' value='Calculate'/> 
        <input type='reset' value='Reset'/> 
       </td> 
     </tr> 

私はPHPタグ外にそれを書くので、私はまた、value="$valuea"から<?php echo $valuea?>

にご入力値を更新します。だから、PHPの変数を表示したいときは、<?php?>をhtmlの中に入れてください。

私はあなたの可変性の内側のテーブルのフォームが正常にこれをテストします。

小さなこと

私は、ファイルの最初の行でincludeを置くことをお勧めします。

<?php include("config.php"); ?>

そして、あなたが本当に必要とスクリプトがそれなしでは動作しません場合。あなたはよく使う必要があります。

<?php require_once("config.php"); ?>

+0

あなたの答えはまだ未定義の変数通知を投げます。 –

+0

@ Fred-ii-投稿する変数がいくつかあります。私はすでにそれが確認された。それはポストデータの作業です。 – Natsathorn

+0

ありがとうございます。このソリューションも同様に機能しました。 –

2

私はコメントで指摘したように、ここの問題はあなたが内部にいることですheredoc
この<?php echo $price; ?>はそれを文字どおり印刷しています。

HTMLソースで見ると、解析された変数ではなく、
<td align="left"><?php echo $price; ?></td>が表示されます。

<?php echo ; ?>を削除して、フォーム内から$priceを削除してください。

しかし、あなたが宣言したすべての変数のために未定義の変数(S)の通知を受け取ることになります。

あなたは彼らが設定されている場合は最初にチェックする必要があり、および/または空ではないでしょう

参考文献:

または三項演算子を使用して:(三項演算子下参照)

例:

$action = (empty($_POST['action'])) ? 'default' : $_POST['action']; 

これは変数にも及びissetによってemptyを交換するように適合させることができます。

エラー報告が通知したであろう:


HTMLのスティックラー:

</br>が有効なHTMLマークアップタグはありません。 <br/>および<br>である。