• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:sessionの使い方)

セッションの使い方

このQ&Aのポイント
  • セッションを利用して値を保持し、他のページで値を変更する方法について教えてください。
  • a.phpでセッションに値を設定し、b.phpで値を変更しましたが、c.phpで確認すると値が変わっていません。どうすれば値を変更できるでしょうか?
  • セッションで一度設定した値を他のページで変更する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.2

> javascriptのonclickで、変数の値を入れ替えるように記述しており、 > (snip) > ・・・ onclick='<?php $_SESSION['n']='1';?>' ・・・・ > という感じの記述です。 あの(^^;それは当たり前です(笑) ただ一点違うのが > ブラウジング時にjavascriptがセットされる時点で ではなく <?php $_SESSION['n']='1';?> で、$_SESSIONに登録されているわけです。 この違いは理解できるでしょうか? PHPはサーバーサイドスクリプトです。 JavaScriptはクライアントサイドスクリプトです。 JavaScriptで記述したから$_SESSIONがセットされたのではなく、Onclick時に呼び出した「PHPの記述」により、$_SESSIONがセットされたのです。 PHPはサーバーサイドスクリプトであるため、$_SESSIONに新たな値を登録したければ、いったんデータをサーバーに送らなくてはなりません。 おそらくラジオボタンか何かで、クライアントが選択した値を$_SESSIONに登録したいのだと思いますが、本来予定していた動きをさせたいのであれば、「クライアントがラジオボタンを選択したという情報」をいったんサーバーに送らなくてはなりません。 ということで、(私が勝手に予想したことですが(^^;)現状のやり方はナンセンスだと思います。

THUBAN
質問者

お礼

自己解決しました! cookie.jsを用いて、javascriptでクッキー変数に書き込み、 その値をPHPのクッキーで読み取ることができました。 どうもお騒がせしました&ありがとうございました。

THUBAN
質問者

補足

ありがとうございます。 PHPはサーバーサイドスクリプトです。 JavaScriptはクライアントサイドスクリプトです。 というのは、理解しているのですが、onclickで、<?php $_SESSION['n']='1';?>が実行されるわけではないということですね。 (この件以外でも、どうもPHPとJavaScript間での値の受け渡しで悩むことが多いです) ブラウザ表示のデザインを変えたくないので、JavaScriptのonclickで、PHPのセッションの変数値の入れ替え(クッキー変数でも良い)が出来る方法はないですかね? 何故、PHPのセッションの変数値をわざわざ使うのかというと、他のPHPソース内で、この変数値を見て、初期設定される値の判定をする箇所が存在するからです。 もし、ご存知であれば、ご教授下さいませ。

その他の回答 (1)

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.1

---b.php--- <?php session_start(); $_SESSION['n']='2'; echo $_SESSION['n']; ?> とすれば、どう表示されますか?

THUBAN
質問者

お礼

自己解決しました! cookie.jsを用いて、javascriptでクッキー変数に書き込み、 その値をPHPのクッキーで読み取ることができました。 どうもお騒がせしました&ありがとうございました。

THUBAN
質問者

補足

2 と表示されます。 その後、原因がつかめたのですが、javascriptのonclickで、変数の値を入れ替えるように記述しており、ブラウザ表示しただけで一番最後のonclickのところで上書きされてしまっているようです。 どうやら、ブラウジング時にjavascriptがセットされる時点で、マウスクリックしていないのに、変数に代入されているようです。 ・・・ onclick='<?php $_SESSION['n']='1';?>' ・・・・ という感じの記述です。

関連するQ&A

専門家に質問してみよう