初めての店舗開業を成功させよう>>

sessionのソースコードについて教えてください。

テキストボックスに記入されたデータは、下記のソースコードで取り出せるのですが、
ラジオボタンを使用して、選択されたボタンに指定された「value」を取り出したいのですが、sessionの記述が解りません。

session_start();
if($_POST['data']!=""){
$_SESSION['year']=$_POST['year'];
}

print "<FORM action=\"sample.php\" method=\"post\">
<INPUT size=\"10\" type=\"text\" name=\"year\" value=\"{$_SESSION['year']}\">\n";
print "<input type=\"submit\" name=\"data\" valu=\"表示 \"></FORM>\n";

宜しくご教示お願い致します。

A 回答 (2件)

うけとった値をラジオボタン形式で表示する方法がわからないということですね?



//x.htm
<form action="y.php">
<input type="radio" name="xxx" value="a">a
<input type="radio" name="xxx" value="b">b
<input type="radio" name="xxx" value="c">c
<input type="submit" value="go">
</form>

//y.php
<?
session_start();
$_SESSION["xxx"]=$_REQUEST["xxx"];
?>
<a href="z.php">next</a>

とした場合、z.phpで以下のどちらかの処理をいれてみてはどうでしょう?

(1)受け継いだセッションの値からcheckedをprintする。

<?
session_start();
?>
<input type="radio" name="xxx" value="a"<?PHP print $_SESSION["xxx"]=="a"?" checked":"";?>>a
<input type="radio" name="xxx" value="b"<?PHP print $_SESSION["xxx"]=="b"?" checked":"";?>>b
<input type="radio" name="xxx" value="c"<?PHP print $_SESSION["xxx"]=="c"?" checked":"";?>>c

(2)チェック用の配列を用意しておいて各ラジオボタンに設置する

<?
$checked["xxx"][$_SESSION["xxx"]]=" checked";
print <<<eof
<input type="radio" name="xxx" value="a"{$checked["xxx"]["a"]}>a
<input type="radio" name="xxx" value="a"{$checked["xxx"]["b"]}>b
<input type="radio" name="xxx" value="a"{$checked["xxx"]["c"]}>c
eof;
?>
    • good
    • 0
この回答へのお礼

ありがとうございました。
解決しました。

お礼日時:2008/10/13 17:27

$_POST["name"](nameはラジオボタンのname属性)で選択された値は取得できますよね。


あとは好きなようにセッション変数に代入してやればいいと思うのですが、記述のどこらへんが不明なのでしょうか。
    • good
    • 0
この回答へのお礼

ありがとうございました。
ANo.2を頂き、解決しました。

お礼日時:2008/10/13 17:30

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

このQ&Aを見た人が検索しているワード

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

Q検索時の選択内容を保持する方法

質問失礼致します。

PHPで
・テキスト
・ラジオボタン
・チェックボックス
が複数入り混じった検索システムを作っています。

なんとか形になって検索の形はできたのですが、
必要な項目を検索し結果画面に映った際に
入力したテキスト・ラジオ・チェックボックスの内容が初期化されてしまいます。


検索した結果、テキストの方はインプット時に
<input type="text" name="name" size="50" value="<?= $_POST['name'] ?>" >
とすることで、結果画面にある検索システムの入力内容は保持できたのですが、

・ラジオ および ・チェックボックス の内容の保持を
なんとかまとめて設定することはできないでしょうか?


検索はしましたが、初心者なこともあり検索ワードがいまいち的を得てないのか、
考えている答えになかなかたどり着けておりませんので、
この場を借りて質問の方させていただいた次第でございます。


ご存じの方いらっしゃいましたら、是非ともご教授お願い致します。

Aベストアンサー

HTMLとプログラム部分の切り分けをするためにはなるべく単純な構造がよいでしょう
私の場合こんな処理をしています。
(実際の運用の際にはデータチェックをしたりするのでもう少し複雑になりますが)

<?
//checkbox
if($_REQUEST["test_a"]=="1") $checked["test_a"]=" checked";
if($_REQUEST["test_b"]=="1") $checked["test_b"]=" checked";

//radio
if(isset($_REQUEST["test_c"])) $checked["test_c"][$_REQUEST["test_c"]]=" checked";

//select
if(isset($_REQUEST["test_d"])) $selected["test_d"][$_REQUEST["test_d"]]=" selected";

print <<<eof
<form>
<input type="checkbox" name="test_a" value="1"{$checked["test_a"]}>A
<input type="checkbox" name="test_b" value="1"{$checked["test_b"]}>B
<input type="radio" name="test_c" value="1"{$checked["test_c"][1]}>C-1
<input type="radio" name="test_c" value="2"{$checked["test_c"][2]}>C-2
<input type="radio" name="test_c" value="3"{$checked["test_c"][3]}>C-3
<select name="test_d">
<option value="">---</option>
<option value="1"{$selected["test_d"][1]}>D-1</option>
<option value="2"{$selected["test_d"][2]}>D-2</option>
<option value="3"{$selected["test_d"][3]}>D-3</option>
</select>
<input type="submit" value="go">
</form>
eof;
?>

HTMLとプログラム部分の切り分けをするためにはなるべく単純な構造がよいでしょう
私の場合こんな処理をしています。
(実際の運用の際にはデータチェックをしたりするのでもう少し複雑になりますが)

<?
//checkbox
if($_REQUEST["test_a"]=="1") $checked["test_a"]=" checked";
if($_REQUEST["test_b"]=="1") $checked["test_b"]=" checked";

//radio
if(isset($_REQUEST["test_c"])) $checked["test_c"][$_REQUEST["test_c"]]=" checked";

//select
if(isset($_REQUEST["test_d"])) $selected["test_d"][$_...続きを読む

QJSP + ラジオボタン

JSP+Servlet+Beanで作ってます。
JBuilder5を使ってます。

JSPはラジオボタン、テキスト、ボタン等があります。
<INPUT TYPE = "radio" NAME = "r1" VALUE = "ins">A
<INPUT TYPE = "radio" NAME = "r1" VALUE = "upd">B
<INPUT TYPE = "radio" NAME = "r1" VALUE = "del">C

としています。
たとえば、Bを選択時、ボタンクリックで
Servletにリクエストを送信しますが、
Servletから再びJSPを呼び出し、画面を
表示するとき、ラジオボタンはBを選択
させたいのですが、どうしたらいいですか?
FormタグのCHECKEDというオプションを
どのように使えばいいのか教えていただきたいのですが。


テキストには、Beanでsetメソッド、
JSPでは、<jsp:getProperty・・・>を使って
セットできているんですが、ラジオボタンも
同様ですか?
@@@・・・JSPのタグを勉強しないといけないです。
@@@勉強不足です。

JSP+Servlet+Beanで作ってます。
JBuilder5を使ってます。

JSPはラジオボタン、テキスト、ボタン等があります。
<INPUT TYPE = "radio" NAME = "r1" VALUE = "ins">A
<INPUT TYPE = "radio" NAME = "r1" VALUE = "upd">B
<INPUT TYPE = "radio" NAME = "r1" VALUE = "del">C

としています。
たとえば、Bを選択時、ボタンクリックで
Servletにリクエストを送信しますが、
Servletから再びJSPを呼び出し、画面を
表示するとき、ラジオボタンはBを選択
させたいの...続きを読む

Aベストアンサー

<% %>のなかに
<jsp:getProperty name="wk" property="aaa" />
のようなJSPタグを使用することはできません。
これはエラーになります。

wkがBeanのインスタンス名、aaaがプロパティ名なので
<% if(wk.getAaa()==1){ out.print("checked");} %>

でよいと思いますが・・・

QJava-jspの画面入力値保持について

画面にテキスト、ラジオボタン、リストボックス とボタンがあります。
ボタンを押すと、JAVAで処理を行い、jspのviewで表示します。

1.テキスト、ラジオボタン、リストボックスなどに値が入力、設定されている状態で
ボタンを押して処理後にテキスト、ラジオボタン、リストボックスの値が
変わらないようにしたいのですが、
その場合、たとえば、入力、設定値をセッションになどに格納しておき
jspの所で、セッションから値を設定すると言うような方法になるのでしょうか?

2.ボタン押して処理後、ラジオボタン、リストボックスの選択値も
  変えないようにしたいのですが、
  これはどのように実現するのが、適切なのでしょうか?


以上、よろしくお願いします。

Aベストアンサー

ボタンというのはフォームのサブミットボタンのことですよ?
つまり、画面遷移が起きることを前提とすると(元の同じ画面に戻るのも含みます)

テキスト、ラジオボタン、リストボックスの状態を「要求パラメータ」として
送信し、それを次画面に反映するというのが最も一般的な方法です。

フレームワーク struts のアクションフォーム&JSPカスタムタグを使うと比較的楽に
そういう画面が作れますが、多くのフレームワークでも大差ありません。
簡単な画面なら素のサーブレート+JSPでも十分作れます。

セッションでもできますが、 セッションはログイン情報などの保持など、
限定された範囲で使うのが普通です。また、結局セッションに最新の
テキスト、ラジオボタン、リストボックスの状態を送るには、「要求パラメータ」
を送信する必要があります。

AJAXを使うという方法もあります。この場合、ボタンは AJAX 処理だけを行い
画面遷移を起こさないので、サーバ側で画面のテキスト、ラジオボタン、
リストボックスの状態をもつ必要はありません。

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ラジオボタンの選択肢をサーブレットで取得するには?

サーブレットの開発を行っていますが、ブラウザー側で
ラジオボタンを選択した際に何を選択したかのデータを取得したいのです。
(下記のHTMLで言えば、割引手形か、手形貸付か、証書貸付というのを取得したいのです)
パラメーターをサーブレットで受け取りたいのですが
うまくいきません
HTMLでHIDDENを使用するとか聞いたことはあるのですがどのようにコーディングすればいいんでしょうか?
よろしくお願いいたします。

<p>
<input type="radio" name="radiobutton" value="radiobutton">
割引手形 
<input type="radio" name="radiobutton" value="radiobutton">
手形貸付 
<input type="radio" name="radiobutton" value="radiobutton">
証書貸付
</p>

ブラウザー側からは
<form action="http://localhost/servlet/yuushi" method=post>
の指定を行っています。
サーブレットでの受け取り方を、
String p2=request.getParameter("radiobutton");
 とすると、p2=radiobuttonとデータがセットされました。

サーブレットの開発を行っていますが、ブラウザー側で
ラジオボタンを選択した際に何を選択したかのデータを取得したいのです。
(下記のHTMLで言えば、割引手形か、手形貸付か、証書貸付というのを取得したいのです)
パラメーターをサーブレットで受け取りたいのですが
うまくいきません
HTMLでHIDDENを使用するとか聞いたことはあるのですがどのようにコーディングすればいいんでしょうか?
よろしくお願いいたします。

<p>
<input type="radio" name="radiobutton" value="...続きを読む

Aベストアンサー

それぞれの項目の value を、ユニークにして下さい。例えば、

<input type="radio" name="radiobutton" value="1"> 割引手形 
<input type="radio" name="radiobutton" value="2"> 手形貸付 
<input type="radio" name="radiobutton" value="3"> 証書貸付

そうすれば、「手形貸付」を選択したときに

String p2 = request.getParameter("radiobutton");

とすれば、p2 は "2" になります。

Qページ移動した場合の、フォームデータの保持

PHP初心者です。

私が作っているPHPのシステムで、ユーザーがフォームデータ入力途中に、他のページに移動すると、「戻る」ボタンなどですぐに戻ってきても、入力したフォームデータが消えてしまいます。

例えば、この「教えてgoo」の「新しい質問をする」のフォームはPHPで生成されていますが、

http://oshiete1.goo.ne.jp/oshiete_new.php3?c=256

途中でちょっと他のページに行っても、(すぐ戻れば?)入力したデータは保持されますよね。

こんなふうにしたいのですが、どうすればよいでしょうか?
「戻る」ボタンで戻ったときに、サーバーから毎回新しいXHTMLをロードしてくるので、入力データがクリアされてしまうのでしょうか?

フォーム入力⇒確認画面⇒「戻る」ボタンで戻るとフォームデータが保持されないということではなく、あくまでフォーム入力中に、ちょっと他のページに行って戻ってくるという設定です。

よろしくお願いします。

Aベストアンサー

原因はセッション関連にありそうですね。
session_cache_limiter()
というのは指定されていますか?
恐らく現状はnocache(ページ内容をキャッシュしない状態)になっているのだと思います。

もし
session_cache_limiter('nocache');
となっていれば、publicもしくはprivateへ変更してみて下さい。
ないようでしたら、session_start()の前に
session_cache_limiter('public');
session_cache_limiter('private');
のどちらかを記述してみて下さい。
publicだと、クライアントマシン、プロキシのどちらもキャッシュを保持しますが、
privateだとクライアントマシンのみキャッシュを保持します。
どちらが良いのかは使い方によると思いますし、
nocacheでないと困る時もありますから。

session_startを削除してしまって良いかどうかは、
他の部分の処理との関連が分からないので何とも言えないです。

一度試してみて下さい。

参考URL:http://jp.php.net/session_cache_limiter

原因はセッション関連にありそうですね。
session_cache_limiter()
というのは指定されていますか?
恐らく現状はnocache(ページ内容をキャッシュしない状態)になっているのだと思います。

もし
session_cache_limiter('nocache');
となっていれば、publicもしくはprivateへ変更してみて下さい。
ないようでしたら、session_start()の前に
session_cache_limiter('public');
session_cache_limiter('private');
のどちらかを記述してみて下さい。
publicだと、クライアントマシン、プロキシのどち...続きを読む

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です
コイン投入口が商品毎に存在する自販機を作...続きを読む

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等のサーバーサイドスクリプトは、...続きを読む

Qラジオボタンの値を受け取ってPHPで表示する初歩的文法

global_register=offの設定で、
HTML検索フォームのチェックボックスから
<input type="radio" name="select" value="male">男
<input type="radio" name="select" value="female">女

を受け取り、それに応じて値を書き換える方法をご教示ください。

「$_POST['select']の値がmaleなら「男」femaleなら「女」という具合です。

if ($_POST['select'] = '$male') {
print $male;

みたいなことをやってみたんですが、ダメっぽいと思ったらダメでした(^^;

Aベストアンサー

こんにちは。

>$gender['male'] = "男";
>$gender['female'] = "女";
>$sql .= " ORDER BY $gender[$_POST['select']]";

>とやると、MySQLに
>Parse error: parse error, unexpected '[', expecting ']' >in /usr/local/apache/***.php on line **
>と怒られてしまいます。
>あと一歩のような感じがするのですが、、、
>何か間違ってますでしょうか?

$sql .= " ORDER BY " . $gender[$_POST['select']];

としてみて下さい。
$sqlの内容を出力してみるとエラーが発見しやすいですよ。

Qphpにcssを適応させたいのですが?

phpで出力させた結果をブラウズするのに、css指定させたいのですが?

できるのでしょうか?

Aベストアンサー

PHPだから特別な考えはしなくて良いです

PHPはあくまでも、サーバー側で動いて、その結果を出力させるだけです

つまり出力させたHTMLにごくごく普通にCSSを適用させれば良いだけです
又、テクニックとしCSSそのものをPHPで処理させることも可能ですよ

例えば
---------------index.html(又はindex.php)のhead内
<link rel="stylesheet" type="text/css" href="stylecss.php"/>
---------------

------------stylecss.php
BODY {
background-color: #<?php echo $background; ?>;
margin: 0px;
}

A:link {
color: #<?php echo $acollar; ?>;
text-decoration:none;
}
-----------
のようにしてしまって、CSSそのものを動的に生成することも可能です

PHPだから特別な考えはしなくて良いです

PHPはあくまでも、サーバー側で動いて、その結果を出力させるだけです

つまり出力させたHTMLにごくごく普通にCSSを適用させれば良いだけです
又、テクニックとしCSSそのものをPHPで処理させることも可能ですよ

例えば
---------------index.html(又はindex.php)のhead内
<link rel="stylesheet" type="text/css" href="stylecss.php"/>
---------------

------------stylecss.php
BODY {
background-color: #<?php echo $background; ?>;
margin: 0px;
...続きを読む


人気Q&Aランキング

おすすめ情報