プロが教えるわが家の防犯対策術!

phpとhtmlを使用して、ラジオボタンをいくつか作成したとします。
どのラジオボタンが選択されているかを判定する場合、通常ラジオボタンのvalueの値が、ある値と一致するかどうかで判定しますが、そうではなく、逆にチェックが入っているラジオボタンのvalue値を取得したい場合、どのようにすればいいのでしょうか?
ちなみに、javascriptは使用したくないです。理由は、その値を再びphpの画面で使いたいからです。
もし、javascriptで取得した値をphpの画面に渡せれば、javascriptを使用してもOKなのですが、なかなか上手く渡せないようなので。。。
ご教授お願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

いまいちよくわからないけど



<input type="radio" name="radio1" value="111">
<input type="radio" name="radio1" value="222">
<input type="radio" name="radio1" value="333">

こうラジオボタンがあった場合、
1のラジオボタンが選択されていればphpに送信されてくるのはradio1=111よ。
2のラジオボタンが選択されていればphpに送信されてくるのはradio1=222よ。
3のラジオボタンが選択されていればphpに送信されてくるのはradio1=333よ。

送られてくるのは選択されたラジオボタンのvalue値のみだから
普通に取得できると思うけど。
    • good
    • 0
この回答へのお礼

あれ?そうですね。何か勘違いしてました。
上手く出来ました。
皆さんどうもありがとうございました。

お礼日時:2010/12/24 15:17

>通常ラジオボタンのvalueの値が、ある値と一致するかどうかで判定しますが、


というのは何を指しているのですか?

>逆にチェックが入っているラジオボタンのvalue値を取得したい場合
むしろこちらの方の認識がただしいとと思いますが・・・

どういうファイルからどういう処理をしてどういう結果を期待しての質問でしょうか?
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

Qphp ラジオボタンのデータの渡し方

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)

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"...続きを読む

Aベストアンサー

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."円です";
}

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

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

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

Qsubmit後のラジオボタンのチェック方法について

submit前のhtmlファイルには次のように記載しております。

<tr>
<td align="left" bgcolor="#FFF09D"><span class="tabletext0">本</span></td>
<td>
<input type="radio" name="book" id="book" value="1" />小説
<input type="radio" name="book" id="book" value="2" />マンガ
</td>
</tr>

submit後、
何も選択していなければ、「必ず選択してください」を表示し、
どちらかが選択されていれば、選択されている項目を表示したいです。

セレクトボックスやチェックボックスではできたのですが、ラジオボタンの方法がわかりません。

submit後のphpファイルには、どのようなコードを記載すれば良いのでしょうか?

Aベストアンサー

http://oshiete.goo.ne.jp/qa/3871366.html

No2をご確認下さい。

Qsyntax error, unexpected '}' というエラーの対処法

PHPを習い始めて三日目になるのですがParse error: syntax error, unexpected '}' in C:\Program Files\Apache Group\Apache2\htdocs\****\****\game.php on line 33
というエラーがでるのですが33行目前後のどこをなおせばいいのでしょうか?
・game.php
<html>
<head>
<title>数当てゲーム</title>
</head>
<body>
<h1 style="background:#cccccc">数当てゲーム</h1>
<form method="POST" action="game.php">
1~100までの数を入力してください
<input type="text" name="answer" size="5" maxlength="3" />
<input type="sbumit" value=回答" />
</form>
<hr />
<?php
session_start();
if(is_null($_SESSION['answer'])){
mt_stand(microtime()*1000000);
$_SESSION['answer']=mt_rand(1,100);
$_SESSION['game_cnt']=0;
}
if($_POST['answer']!=""){
$_SESSION['game_cnt']++;
if($_session['answer']==$_POST['answer']){
print("おめでとうございます".
$_SESSION['game_cnt']."回で正解しました!");
session_destroy();
}else{
if($_SESSION['answer']>$_POST['answer']){
print("もう少し大きいです。");
}else
print("もう少し小さいです。");
}
}
}
?>
</body>
</html>
それとこの間違えたところをなおしたあとはいつもコンピュータを再起動しないと修正したところが適用されないのですがほかに方法はないですか?基本的な質問ですいません。

PHPを習い始めて三日目になるのですがParse error: syntax error, unexpected '}' in C:\Program Files\Apache Group\Apache2\htdocs\****\****\game.php on line 33
というエラーがでるのですが33行目前後のどこをなおせばいいのでしょうか?
・game.php
<html>
<head>
<title>数当てゲーム</title>
</head>
<body>
<h1 style="background:#cccccc">数当てゲーム</h1>
<form method="POST" action="game.php">
1~100までの数を入力してください
<input type="text" name="answer" size="5" max...続きを読む

Aベストアンサー

print("もう少し大きいです。");
}else
print("もう少し小さいです。");
のelseの後に{がないようですが、大丈夫でしょうか?

QボタンをクリックでPHP文を実行

ボタンをクリックしたときのみPHP文を実行したいのですが・・・

<input type="button" onClink="<?php~?>">
でいけるかと思ったのですが、
ページ表示時に<?php~?>が実行されてしまい、うまくいきませんでした。

onClink="window.open(test.php)"
という方法以外でお願いします。

Aベストアンサー

AjaxはもともとJavaScriptの機能である非同期通信をつかったもので。Ajaxという言語があるわけではありません

Ajaxを利用するのであれば、JavaScriptのXMLHttpRequestを使って非同期通信できるような実装をしなくてはなりません
簡単にサンプルコードで書けるほど単純なものでもありません

一般的なサーバーサイドスクリプトの動作として、
ボタンを押す->サーバーへリクエストする->サーバーが処理する->クライアントに何かしらの結果を返す(出力する)です
つまり、PHP等のサーバーサイドスクリプトは、遷移させることが大前提で動作します

ですから、ボタンを押してその場でJavaScriptと同じようにPHPが動くなんてことはありえません。
ボタンを押したらサーバーにリクエストする という動作ならば可能です。

つまり
質問で言われているような
onClink="window.open(test.php)"

<form name="f1" action="test.php" method="post">
<input type="submit" name="submit" value="submit" />
</form>
等のような形になります

こういった一般的な方法だと いちいち画面が切り替わったようになってしまうのを嫌って Ajaxでコレと同じことを、画面を切り替えずに行っているだけに過ぎません

AjaxはもともとJavaScriptの機能である非同期通信をつかったもので。Ajaxという言語があるわけではありません

Ajaxを利用するのであれば、JavaScriptのXMLHttpRequestを使って非同期通信できるような実装をしなくてはなりません
簡単にサンプルコードで書けるほど単純なものでもありません

一般的なサーバーサイドスクリプトの動作として、
ボタンを押す->サーバーへリクエストする->サーバーが処理する->クライアントに何かしらの結果を返す(出力する)です
つまり、PHP等のサーバーサイドスクリプトは、...続きを読む

Qillegal string offset

php5.3では動いていたプログラムをphp 5.4 で動かしたらwarning illegal string offsetが出て困っています。以下のプログラムでwarningが出ないようにするにはどのようにコーディングすればよいのでしょうか?


$a = array('exists' => 'foo');
if ($a['exists']['non_existent']) {
print 1;
}
print 2;
exit;

Aベストアンサー

isset()を使えばいいと思います

QInner join と Left joinの明確な違いは?

Inner join と Left joinの違いがよくわかりません。
教えてください。

Aベストアンサー

出てくる結果が違います。

テーブル1のフィールド1に、






が、

テーブル2のフィールド1に、






が入力されている場合、

SELECT [テーブル1].[フィールド1], [テーブル2].[フィールド1]
FROM テーブル1 LEFT JOIN テーブル2 ON [テーブル1].[フィールド1]=[テーブル2].[フィールド1];
では、結果は、
テーブル1.フィールド1 テーブル2.フィールド1
1               1
2               2
3               3
4               NULL
5               NULL
6               NULL
の6レコードが出力されますが、

SELECT [テーブル1].[フィールド1], [テーブル2].[フィールド1]
FROM テーブル1 INNER JOIN テーブル2 ON [テーブル1].[フィールド1]=[テーブル2].[フィールド1];
では、結果は、
テーブル1.フィールド1 テーブル2.フィールド1
1               1
2               2
3               3
の3レコードしか出力されません。

出てくる結果が違います。

テーブル1のフィールド1に、






が、

テーブル2のフィールド1に、






が入力されている場合、

SELECT [テーブル1].[フィールド1], [テーブル2].[フィールド1]
FROM テーブル1 LEFT JOIN テーブル2 ON [テーブル1].[フィールド1]=[テーブル2].[フィールド1];
では、結果は、
テーブル1.フィールド1 テーブル2.フィールド1
1               1
2               2
3           ...続きを読む

Qラジオボタンの選択判定

こんばんわ。

ラジオボタンを使って判定を行いたいのですがうまくいきません。

やりたいのは、1,2,3のラジオボタンとaというボタンがありaを押したときにチェックがついているラジオボタンによって判定が変わるようにしたいのです。

初期設定を1はtrue、2,3はfalseにしてあります。
3つのボタンはグループ化してありますので、どれかひとつしかtrueがないです。

現状では、初期設定の状態でボタンを押しても反応しません。
一度ボタンのt/fを変更すれば判定ができるようになるのですが。

どなたかわかる方いらっしゃいましたら教えてください。
お願いします。

Aベストアンサー

aというボタンを押した時に
チェックされているラジオボタンの判定をしたい。
ってだけなら
itemStateChangedを実装する必要

ラジオボタンと変数(フラグ)を併せ持つ必要
もいらないでしょ。
(ラジオボタンとフラグの二重管理でフラグセットし忘れなどバグの原因にもなりますし。)

aというボタンが押されたときの処理で
--------------------------------------------------
Checkbox c1 = new Checkbox("1");
Checkbox c2 = new Checkbox("2");
Checkbox c3= new Checkbox("3");

public void actionPerformed(ActionEvent ae){
  String command = ae.getActionCommand();
  if(command.equals("aボタンのアクションコマンド")){
    if(c1.getState()){
      //c1の処理
    }else if(c2.getState()){
      //c2の処理
    }else if(c3.getState()){
      //c3処理
    }else{
      //チェックされていない場合の処理
      //初期設定されてるからあり得ない
    }
  }
}
--------------------------------------------------
でいいんじゃないかな。

他にも
CheckboxGroupクラスに
public Checkbox getSelectedCheckbox()
戻り値 現在「オン」の状態であるチェックボックス、またはnull(全てのチェックボックスが「オフ」
なんてのもあるので、上記の分岐部分を

--------------------------------------------------
CheckboxGroup cg = new CheckboxGroup();

Checkbox cb = cg.getSelectedCheckbo();
if(cb == null){
  //全部オフ
}else if(cb == c1){
  //c1の処理
}else if(cb == c2){
  //c2の処理
}else if(cb == c3){
  //c3の処理
}else{
  //上記以外(ありえない)
}
--------------------------------------------------
としてもいいかと。

…あ゛…
JCheckboxだったらごめんなさい。orz

aというボタンを押した時に
チェックされているラジオボタンの判定をしたい。
ってだけなら
itemStateChangedを実装する必要

ラジオボタンと変数(フラグ)を併せ持つ必要
もいらないでしょ。
(ラジオボタンとフラグの二重管理でフラグセットし忘れなどバグの原因にもなりますし。)

aというボタンが押されたときの処理で
--------------------------------------------------
Checkbox c1 = new Checkbox("1");
Checkbox c2 = new Checkbox("2");
Checkbox c3= new Checkbox("3");

public void ...続きを読む

Qアンケートフォームの未記入項目チェック

アンケートフォームを作る勉強をしています。
氏名やメールアドレスなどが未記入の場合にエラーとして登録できないようにするにはどうしたらいいでしょうか

PHPの勉強をはじめてまだ数日なので参考書片手にやっている状態なのですが
is_nullというのがあったので
<?php
if(is_null($_POST['name"])){
print("<p>ERROR:氏名が未記入です。<br>");
}else{
$result1=($_POST['t_fname']);
}
?>
こんな具合にやってみたのですがうまく動きませんでした
どのようにやったらいいかアドバイスお願いします。

Aベストアンサー

tabun0622さんはじめまして、papillon68と申します。

氏名やメールアドレスを入力する部分を
<input type="text"・・・>
で作成していると推測しての回答です。


◆text(テキスト)
submitが押されるとその時入力されている値が送信されます。
未入力の場合は空白です。("")

◆select、option(コンボボックス)
submitが押されるとその時選択中のvalueが送信されます。

◆checkbox(チェックボックス)
submitが押されるとチェックが入っていればvalueが送信され、チェックが入っていなければそのチェックボックス自体は送信されません。
$_POST['チェックボックスのname']が未定のような感じです。

◆radio(ラジオボタン)
submitが押されると選択されているラジオボタンのvalueが送信され、チェックが入っていなければそのラジオボタン自体は送信されません。

◆submit(サブミット)
押されたサブミットボタンのみが送信されます。



ですので、
> if(is_null($_POST['name"])){
の場合ですと

if($_POST['name'] == "") {

とすると未入力かどうかが判断できます。


チェックボックスやサブミットボタンの場合ですと

if(isset($_POST['name']))

とすると送信されたかどうかが判断されます。
この方法はよく使われているように思います。


例えば、以下のようにするとサブミットボタン(send)がおされなければ、登録処理は行われません。
--------------------------------------------------
<?php
 // sendが押されたかどうか
 if(isset($_POST['send'])) {
  // nameが未入力ではないか
  if($_POST['name'] == "") {
   print("<p>ERROR:氏名が未記入です。<br>");
  }else{
   $result1=($_POST['t_fname']);
  }
 }
?>
<form>
氏名:<input type="text" name="name">
<input type="submit" name="send">
</form>
--------------------------------------------------

tabun0622さんはじめまして、papillon68と申します。

氏名やメールアドレスを入力する部分を
<input type="text"・・・>
で作成していると推測しての回答です。


◆text(テキスト)
submitが押されるとその時入力されている値が送信されます。
未入力の場合は空白です。("")

◆select、option(コンボボックス)
submitが押されるとその時選択中のvalueが送信されます。

◆checkbox(チェックボックス)
submitが押されるとチェックが入っていればvalueが送信され、チェックが入っていなければそのチェ...続きを読む

QERROR1062:Duplicate entry.....というエラーが出てしまいました

いつもお世話になります。
データベースからSELECTで抽出したデータを別のテーブルにINSERTするSQLを実行したのですが、
ERROR1062:Duplicate entry.....というエラーが出てしまいました。
お詳しい方がいらっしゃいましたら、アドバイスをいただけませんでしょうか?よろしくお願いいたします。
【実行したSQL】
INSERT INTO tblA (dataA1, dataA2, dataA3, dataA4) SELECT "9001","AA",dataB1,dataB2 FROM tblB WHERE dataB1 = 52

tblAの主キー:dataA1とdataA2
tblBの主キー:dataB1

dataA1とdataA2はtblAの主キーとなっているため、重複してしまうということのようです。tblBの主キーはdataB1であるため、抽出されてくるデータは常に1件なので問題ないと期待していましたが、甘くなかったようです。何か良い方法はないものでしょうか?よろしくお願いいたします。

Aベストアンサー

「ERROR 1062」は、重複データを格納しようとした場合に出力されるエラーです。
既にdataA1='9001'&dataA2='AA'という行が、tblAに格納されているのですよね?

>抽出されてくるデータは常に1件なので問題ないと期待していました

「insert ~ select ~」を実行前に、既に同じデータが格納されているのでは?
あるいはprimary keyの指定が、質問中に記された通りでなく、2件以上検索されているかです。

>何か良い方法はないものでしょうか?

何をするための方法を、聞きたいのかが分かりませんが?


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング