みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

PHPとhtmlについて

初心者なりに下のようなプログラムを作ってみましたが、「注文画面へ」のボタンを押しても反応がありません。どうしたらいいでしょうか?教えてください。

あと、注文画面へ行くとボールの個数を選んだ後に出る合計金額を次のページに反映させたいのですが、それもわかりません。もしよければ、こちらも教えてください。

よろしくお願いします。

<html>
<head>
<title> 商品確認 </title>
<script language ="JavaScript">

<!--
function calc(amount){
document.ball.total.value = 4095 * eval(amount);
}//-->
</script>


</head>
<body>
<form name=ball>
V4SLBL ソフトタッチ鈴入り4号球<br>
<hr>
個数:
<select name ="num" onchange = "javascript:calc(this.value)">
<option value =0>0
<option value =1>1
<option value =2>2
<option value =3>3
<option value =4>4
<option value =5>5
</select>

小計:
<input type="text" size="8" name="total">円<br>
<hr>


<?php

$go['V4SLBL ソフトタッチ鈴入り4号球'] = "4,095円";

echo " 商品確認";
echo "<table border=\"1\">";

foreach($go as $key=>$value)
echo '<tr><td>'."$key</td><td>$value</td></tr>";
echo '</table>';

echo"<form action=\"m4.php\" method = \"post\">
<input type = \"submit\" value = \"注文画面へ\"></form>";

echo"<form action=\"m1.php\" method = \"post\">
<input type = \"submit\" value = \"戻る\"></form>";

?>

</form>
</body>
</html>

投稿日時 - 2007-12-12 20:58:40

QNo.3593185

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

失礼な言い方かもしれませんが、まず、HTMLを勉強してください
PHP以前の問題です

<form>でかこまれた部分しかPOSTされませんので、注文画面へ を押してもも、<select>内のデータは送信されていません
また、<form name=ball></form> 内に複数の<form>が含まれて居ますが、formのネストはHTMLではできません。


いくつか問題はありますが、一番重要な問題として、不完全なHTMLにより、正確にPOSTされていない
ということがあります。

また、
$go['V4SLBL ソフトタッチ鈴入り4号球'] = "4,095円";
とありますが、連想配列のキーに日本語(2バイト文字)を使うのはやめましょう。
画面上にキー名をそのまま使いたいという気持ちはわからないではありませんが、百害有って一利なしです。


プログラム言語を勉強したいということは良いことではありますが、まずは完璧とまではいかないまでも正確なHTMLを書けるようになってからでないとwebシステムを理解することは難しいです。
いきなり希望のものを作ろうと思っても何が悪いのか検討も付かないかと思います
ですから、小さいものでテストして ひとつひとつの動きを理解してゆくほうが近道かと思います



ためしに
<?php
$t1 = $_POST['t1'];

//出力直前にHTMLタグをぶっこ抜く
$t1 = htmlspecialchars($t1);
//とりあえず、ヒアドキュメントで出力します
print <<<_HTML_
<form method="post" name="f1">
<input type="text" name="t1" value="{$t1}" />
<input type="submit" name="submit" value="submit" />
</form>
_HTML_;
?>

これを実行してみてください

こういった 小さいものを作ってゆき、テストしまくってから大きいな物をつくります
プロ(業務でこういったシステムを作っている人)もいきなり大きなものを作るのではなく、最初に小さいテストを作るんですよ
大きなビルだって、最初は模型をつくったりしますよね そんな感じです

投稿日時 - 2007-12-13 00:24:44

お礼

ご回答ありがとうございます。
自分なりに、少しずづですが理解することができました。
ありがとうございました。

投稿日時 - 2007-12-21 18:53:03

あなたにオススメの質問