• 締切済み

ラジオボタンをsessionで使いたい

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"; 宜しくご教示お願い致します。

  • PHP
  • 回答数2
  • ありがとう数4

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.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; ?>

toshi1936
質問者

お礼

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

  • UmJammer
  • ベストアンサー率58% (115/196)
回答No.1

$_POST["name"](nameはラジオボタンのname属性)で選択された値は取得できますよね。 あとは好きなようにセッション変数に代入してやればいいと思うのですが、記述のどこらへんが不明なのでしょうか。

toshi1936
質問者

お礼

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

関連するQ&A

  • ラジオボタンでうまくするには・・・・

    初めまして。 現在下記のプルダウン形式で、一つの価格が同じなので問題なく動くのですが <FORM action="cart/sys/cart.cgi" method="post"> <INPUT type=hidden value=005 name=num> <INPUT type=hidden value=●●● name=name> <INPUT type=hidden value=2000 name=tan> <SELECT name=sur> <OPTION value="" selected>購入数量</OPTION> <OPTION value=1>1</OPTION> <OPTION value=2>2</OPTION> <OPTION value=3>3</OPTION> <OPTION value=4>4</OPTION> <OPTION value=5>5</SELECT> <INPUT type=submit value=カートに入れる> </FORM><BR> <FORM action="・・・/cart.cgi" method="post"> <INPUT type=hidden value=005 name=num> <INPUT type=hidden value=●●● name=name> <INPUT type=hidden value=2000 name=tan> </FORM> 同じ商品で1・2・3・4・5のそれぞれに単価が変わる設定をしたいのですが、うまくいく方法が見つからないです。 ラジオボタン形式で作ってみたものの・・・・ <FORM action="・・・/cart.cgi" method="post"> <INPUT type=hidden value=005 name=num> <INPUT type=hidden value=●●● name=name> <INPUT type=submit value=カートに入れる> </FORM> <FORM> <INPUT type="radio" name="name1" value="2000">1袋<BR> <INPUT type="radio" name="name1" value="3900">2袋<BR> <INPUT type="radio" name="name1" value="5800">3袋<BR> <INPUT type="radio" name="name1" value="7500">4袋<BR> <INPUT type="radio" name="name1" value="8500">5袋</FORM> としてみましたがうまくいきません。 なにか方法ございましたら、ご教授いただければと思います。

    • ベストアンサー
    • HTML
  • 複数のsubmitボタンで押されたボタンを取得する方法

    form内の、submitボタンの値が拾えません。 1つだけsubmitボタンを設置すると値が拾えますが、 2つ以上submitボタンを設置すると拾えません。 仕様上、無理なのでしょうか? <SCRIPT language="JavaScript"> function move_post(){ alert(document.frmMvPost.btn.value); } </SCRIPT> <FORM name="frmMvPost" action="" method="post" onsubmit="return move_post()"> <INPUT type="submit" name="btn" value="テスト1"> <INPUT type="submit" name="btn" value="テスト2"> <INPUT type="submit" name="btn" value="テスト3"> </form>

  • ボタンを消したい(二度押し抑制)

    <form method="post" action="xxx"> <input type="text" name="a"> <input type="submit" name="submit" value="SEND"> <input type="submit" name="submit" value="BACK"> </form> こういうソースがあります。 SENDボタンをクリックするとメールが送信されます。 BACKボタンをクリックすると入力画面に戻ります。 ここでSENDボタンを連打されるとメールが連続送信されてしまいます。 そうならないようにボタンをクリックした時2つのボタンを消してしまいたいのですが、どうすればよいでしょうか。 よろしくお願いします。

  • hiddenを使ったセッション

    こんにちは。 セッションを使ったデータの受け渡しをしたいのですが、 (携帯を考慮してcookieは使わないやり方で) hiddenにセッションIDを持たせる方法で書いてみたのですが、 うまくいきません。 送られてはいるけど、受け取れていないのかな…? とは思うのですが、対処がわかりません。 以下のソースです。(確認用でGETにしてます) 望むのは、printされたセッションIDとテキスト内のセッションIDが 同一になる(=セッションが保持できてるということですよね?) かつ、submitしても、セッションIDが変わらない、という状況です。 よろしくお願いいたします。 print "Content-type: text/html\n\n"; use CGI; use CGI::Session qw/-ip-match/; if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $query_string, $ENV{'CONTENT_LENGTH'}); } else { $query_string = $ENV{'QUERY_STRING'}; } my $cgi = new CGI; CGI::Session->name("session_id"); my $session = new CGI::Session("driver:File", $cgi, {Directory=>'./session'}); $sid = $session->id(); $session->param('value', $sid); $sesid = $session->param('value'); print $sesid."<br>\n"; undef($session); @query = split(/&/, $query_string); foreach $query (@query){ ($name, $data) = split(/=/, $query); $data{$name} = $data; } print <<"EO"; <html><head> <title> </title> </head> <body><hr><hr> <form action="./test.cgi" method="GET"> <input type="hidden" name="session_id" value="$sesid"> <input type="text" name="btn" size="50" value="$data{'session_id'}"><br> <input type="submit" value="submit"><br> </form> <hr><hr></body></html> EO

  • 選択したたラジオボタンの値をSUBMITボタンに

    選択したたラジオボタンの値をSUBMITボタンの名前として自動的に替えたいのですが、助言をいただけますか。 イメージは下記です。★の部分に、クリックごとにradioの値を入れたいのです。 <script Language="JavaScript"><!-- function set() { n = document.myFORM.Radio.value; } // --> </script> <FORM ACTION="add.cgi" METHOD="POST" name="myFORM"> <INPUT TYPE="RADIO" NAME="Radio" VALUE="東京" onclick="set()" CHECKED> <INPUT TYPE="RADIO" NAME="Radio" VALUE="大阪"> <INPUT TYPE="SUBMIT" NAME="Submit" VALUE="★"></form>

  • 選択された値をセッションで保存したい

    ラジオボタンで選択された値をセッションで保存し、DBまで持って行きたいのですが、どのようにすればよいでしょうか?なお、ラジオボタンからはPOSTで渡しています。どなたかわかる方ご教授お願いします。流れは【a.php => b.php => c.php => d.php => DB】c.phpにラジオボタンがあります。 [c.php]はこのような感じです。 <form name="form1" method="post" action="d.php"> <input type="radio" name="color" value="なし" >なし <input type="radio" name="color" value="赤">赤 <input type="radio" name="color" value="青">青 <input type="submit" name="Submit" value="送信">

    • ベストアンサー
    • PHP
  • sessionの値でボタンを活性・非活性(JSP)

    題記の通りなのですが以下のJSPを <form method="POST" action="TEST">  <% if (errmsg == "") { %> <input type="submit" class="button" value="クリック"> ⇒  ボタン活性  <% } else { %> <input type="submit" class="button" value="クリック"> ⇒  ボタン非活性  <% } %> </form> セッションより渡ってきたエラーメッセージにより ボタンを活性・非活性にするには どのように実装すればよろしいのでしょうか?

  • 2つのsubmitボタンがあるときに

    最初に書いたボタンが優先され 単にリターンキーを押したときに 最初のsubmitボタンが反応します。 後のsubmitボタンが反応するようにするにはどうしたらいいのでしょうか? つまり下記のPHPをブラウザに表示させているときにリターンキーを押したときには submit2 is pushed. と表示させるにはどうしたらいいのでしょうか? <form method="post" action="<?=$PHP_SELF?>"> <input type="text"/><br/> <input type="checkbox"/><br/> <input type="radio" name="radio"/><br/> <input type="submit" name="submit" value="submit1" tabindex=-1/><br/> <input type="submit" name="submit" value="submit2" tabindex=1/><br/> </form> <?php if(isset($_POST['submit'])) { echo$_POST['submit'].' is pushed.'; } ?>

    • ベストアンサー
    • PHP
  • formのボタンをsubmitしたときにアラート

    javascript で、formのボタンをsubmitしたときに アラートが出るようにしたいと思います。 下記のように作ってみましたが、うまく動きません。 どのようにすれば動くでしょうか? ご教示いただきたくお願いいたします。 <script type="text/javascript"> function(){ $('form1').submit(function(){ $.ajax({ type: 'POST', data: postData, url: 'buy.php', success: function(data){alert("購入できました");} error: function(){alert('購入できませんでした。再度お試しください');} }); return false; }); } </script> <form name="form1" id="form1" method="POST" name="form1" value="form1" action="buy.php"> <input type="hidden" name="id" value="100" /> <input type="hidden" name="name" value="高橋" /> <input type="submit" value="Save"> <form/>

  • セッションにIDを振って値を代入

    PHP初心者です。 PHP4.2.xを使っています。 ショッピングカートで購入した商品データをセッションで維持してカートに追加する機能部分を作っていますがうまくいきません。 コードは以下のとおりです。 【goods.php】 ----------------------------------------------------------- <? session_start(); ?> ■商品1 <form action="cart.php" method="POST"> <input type="hidden" name="id" value="1" /> <input name="num" type="text" /> <INPUT type=submit value="カートに追加"> </form> ■商品1 <form action="cart.php" method="POST"> <input type="hidden" name="id" value="2" /> <input name="num" type="text" /> <INPUT type=submit value="カートに追加"> </form> ----------------------------------------------------------- 【cart.php】 ----------------------------------------------------------- <? session_start(); if($_POST['id'] != ""){ $id = $_POST['id']; $num = $_POST['num']; // セッション名自体をIDで作っています。中身は個数のみです。 $_SESSION["$id"] = $num; } echo "カートに入ってる商品<br />"; for ($i = 0; $i<=100; $i++) { if (!empty($_SESSION["$i"])){ echo $_SESSION["$i"]. "<br>\n"; } } ?> ----------------------------------------------------------- goods.phpのファイルで商品1と商品2を1つずつカートに入れれば cart.phpのページで 1 1 と表示されるはずが、1しか出ません。 $_SESSION["1"] $_SESSION["2"]の中身が表示される予定でしたがそうならず、 そのときPOSTで投げられたIDしか$_SESSION["$id"]に保持されません。 どうすればどんどん商品をカートに追加できますでしょうか? アドバイスのほどどうぞよろしくお願いします!

    • ベストアンサー
    • PHP