- ベストアンサー
php ラジオボタンのデータの渡し方
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)
- みんなの回答 (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 /> お金を<input type="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."円です"; }
その他の回答 (1)
- shimix
- ベストアンサー率54% (865/1590)
>if($_POST['Juice'] = '$nedan1') if($_POST['Juice'] == '$nedan1') では?
お礼
初歩的ミスでした。修正してやってみます。有難う御座いました!
お礼
かなり細かく説明してくれて助かりました。ヒントソースを参考になんとか動かしたいと思います。有難う御座いました。