最大1万円超分の電子書籍プレゼント♪

phpで自動販売機プログラムを作成しています。
ラジオボタンを使い120円または150円の飲み物を選択できるようにし、購入を押すとおつりを計算するものです。

これがhtml側のプログラムです。
<FORM ACTION="result.php" METHOD="POST">
<INPUT TYPE="RADIO" NAME="Juice" VALUE="nedan1" CHECKED>120円のジュースを購入します。お金を<INPUT TYPE="TEXT" NAME="money1" SIZE="5">円入れます。<BR>
<INPUT TYPE="RADIO" NAME="Juice" VALUE="nedan2">150円のジュースを購入します。お金を<INPUT TYPE="TEXT" NAME="money2" SIZE="5">円入れます。<BR>

<INPUT TYPE="SUBMIT" VALUE="購入">

これをphp側のプログラムで処理するさいラジオボタンでデータを渡したいのですがやり方がわかりません。
この場合120円の飲み物のおつり計算をしたいのです。
if($_POST['Juice'] = '$nedan1'){(想像)
$sonyu = $_POST['money1'];
こちらでは150円のほうの計算を。
elseif($_POST['Juice'] = '$nedan2'){
$sonyu = $_POST['money2'];
このif文とテキストの渡し方の部分がこれでは動かないのでどなたかご教授ください。

環境はPHPDEV423を使っています。(Apache、Mysql)

gooドクター

A 回答 (2件)

if($_POST['Juice'] = '$nedan1'){(想像)



ラジオボタンは、1つのみ選択ですから $_POST['Juice'] の中に
nedan1かnedan2 という値のどちらかが入ってきます
ですから
比較するのであれば
if($_POST['Juice'] === 'nedan1'){
こうなります

あともうひとつ
実際の自動販売機には、お金を入れるところは1つしかありません。
しかしあなたの質問文に書いているソースを現実に当てはめると、商品毎にコイン投入口があることになります
money1 と money2です
コイン投入口が商品毎に存在する自販機を作るのであれば良いのですが・・・


いちおー私なりに、あなたが理解できるのではないかな?というソースを貼り付けておきますが、
かなりいい加減で、無作法なソースなのでこのままコピーしたりしても意味ないですよ
あくまでもヒントとしてのソースです
この例の場合、同一値段の商品が増えたときに対応できません(わざとです)


---------html
<form action="result.php" method="post">
<input type="radio"name="juice" value="120" />120円のジュースを購入します。 <br />
<input type="radio"name="juice" value="150" />150円のジュースを購入します。 <br />
お金を<inputtype="text" name="money1" size="5" />円入れます。<br />
<input type="submit" value="購入" />
</form>

---------result.php
//陳列している商品の値段と商品名
$price["juice1"]=120;
$price["juice2"]=150;

//POSTされた値を取得します
$juice = $_POST["juice"];
$money1 = $_POST["money1"];

//$money1 がお金かどうかを調べる
if( false === is_int($money1) ){
exit("お金を入れてください");
}

//選択されたジュースがいくらなのかを比較
if ( $price["juice1"] == $juice){
$change = $money1 - $price["juice1"] ;
}elseif( $price["juice2"] == $juice){
$change = $money1 - $price["juice2"];
}

if ( 0 > $change ){
print "お金が足りません";
}else{
print "おつりは".$change."円です";
}
    • good
    • 0
この回答へのお礼

かなり細かく説明してくれて助かりました。ヒントソースを参考になんとか動かしたいと思います。有難う御座いました。

お礼日時:2008/03/18 19:56

>if($_POST['Juice'] = '$nedan1')



if($_POST['Juice'] == '$nedan1') では?
    • good
    • 0
この回答へのお礼

初歩的ミスでした。修正してやってみます。有難う御座いました!

お礼日時:2008/03/18 19:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

gooドクター

人気Q&Aランキング