クリアボタンを押すことによって、あるセッション変数(ここでは$player1num[0~15]という風に配列を使っており、テキストボックスに数値を入力後submitボタンを押すことによりその数字をこの変数に格納して表示してます)を破棄したいです。
PHP内でechoを使って表示された後、クリアボタンを押すことで$player1num[0~15]を破棄したいのですが、どんなプログラミングをすれば良いのでしょうか?
JavaScript内で$player1num=array();として、onClickでそれを呼んで破棄しようとしたのですがうまくいきません。
セッションの使い方をちゃんと分かっていない初心者ですが、どうかよろしくお願いします。
No.2ベストアンサー
- 回答日時:
テキストボックスを送信するためのsubmitボタンは、
<form action="input.php" method="post">
<input type="text" name="answer" value="" /><input type="submit" name="answer_button" value="送信" />
</form>
のようなものを作成されているのでしょうか。
formの仕様上、複数のsubmitボタンが存在していて、いづれかが押下され、フォーム送信が行われた場合、
押下されたsubmitボタンの変数のみが渡されます。
ソレを利用して、
<form action="input.php" method="post">
<input type="text" name="answer" value="" />
<input type="submit" name="answer_button" value="答える" /> <input type="submit" name="clear_button" value="ログ削除" />
</form>
というようにフォームを設置して、送信先のプログラムに、
<?php
if(isset($_POST['answer_button'])){
//名前:answer_buttonが押下されていた場合に回答の成否を確認する処理
}elseif(isset($_POST['clear_button'])){
//名前:clear_buttonが押下されていた場合にログの削除を実行する
}
?>
というような振り分け処理を行えば良いのではないでしょうか。
この回答への補足
回答ありがとうございます。
この回答を参考に変えてみました。
私は今プレイヤー2人で対戦する数当てゲーム(ここでは、トップ画面にてプレイヤー2人の名前とそれぞれの秘密の数字を設定し、プレイ画面でもそれらを表示し続ける。下にある$player1numはプレイ画面でのプレイヤー1の入力値を格納する変数で、0~14の配列を使っています)を作っているのですが、プログラムの最後の方で
<input type="submit" name="clear" value="クリア">
if(isset($_POST['clear'])){
$player1num=array();
}
としてみたのですが、何も反応しませんでした。
そこで試しに$player1num=array(); を $_SESSION=array();に変えてみると、
クリアボタンを2回連続押すことで両プレイヤー名・秘密の数字・プレイ画面での入力値が消えました。
さらに$player1num=array(); を session_destroy();に変えてみると、
当然ですが、クリアボタンを1回押すと上の3種類のセッションが消えました。
私はプレイ画面での入力値だけを消したいのですがどうも上手くいきません。
$_SESSION=array();では、3種類のセッションが消えてしまうのは分かりますが、
2回連続押さないと消えないのはよく分かりません。
度々すみませんが、もう一度これについて回答頂けないでしょうか?
No.4
- 回答日時:
$player1num
は、どのように吐き出した変数なのでしょうか。
ゲーム自体は、いわゆるヒットアンドエラーというものと思うのですが、
hitosashiさんがどのように設計されているかによるんですが、
セッション変数にある、一部の内容のみ削除されるのであれば、
$_SESSION['player1num'] = array();
と、削除したいキーのみ空にすれば良いのではないでしょうか。
なんとか入力値だけを初期化出来るようになりました。
その後1から入力し直すことも出来ました。
ありがとうございます(^^)
相変わらずクリアボタンを2回押さないと初期化出来ませんが(- -||)
No.3
- 回答日時:
セッション変数を全て消したいだけであればsession_startした後
$_SESSION = array();
でOK。
ログインなどが絡む場面でセキュリティ上、セッションクッキー自体を削除したい場合はもうちょっと複雑。
http://d.hatena.ne.jp/Kappuccino/20080726/121704 …
JavaScriptの動作だけでPHP上の変数を削除するのはajax等を使わない限り不可能です。
ページ遷移が基本的に必要です。
この回答への補足
またまた回答ありがとうございます。
なんとか入力値のみの破棄(初期化?)は出来るようになったのですが、
なぜかクリアボタンを2回押さないと入力値の破棄ができません。
理由としてはどんなことが考えられるでしょうか?
すみませんが、回答を頂ければ幸いですm(__)m
No.1
- 回答日時:
僕の理解力がないためか、なんの質問かよくわかりません。
ボタンをクリック後ページ遷移無しにセッションをクリアしたい
ということですか?
この回答への補足
すいません、セッションをもう少し理解できていれば説明しやすいんですがm(__)m
例えば、「1234」、「5678」、「9012」と入力した後、プレイ画面ではセッションにより
1234
5678
9012
と表示される様にしているのですが、これをボタンを押すことによって
この3つの数字全てを消すようにしたいということです。
で、その後また再入力できるようにもしたいです。
分かりにくいですが、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- Visual Basic(VBA) visual basic初心者です。 visual studioで電卓を作成しています。 実行時にテ 1 2023/02/08 00:18
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
- PHP PHP MySql ページング 2 2022/09/20 06:38
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- PHP カラーミーショップのSmartyでの文字列抜き出し 2 2022/05/06 11:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpでPEAR::DBを使っているので...
-
phpでcookieがうまく保存されない
-
index.phpって何ですか? 具体...
-
index.phpに入るには、どうすれ...
-
PHP8を使うと、大量のWarningが...
-
PHPSpreadsheetを使って関数を...
-
アンドロイドスマホでのphp ech...
-
Postgresの特定のカラムからス...
-
PHPのエラーの解消法について教...
-
PHP MySql ページング
-
ECCUBE4のページ管理でPHPを実...
-
PHPで画像の渡しが上手く行きま...
-
ログインした掲示板ですが、直...
-
ここで言う空文字の意味とは?
-
PHP でメールフォームを作成したい
-
MySQLの配置が変わったため、db...
-
phpのクラスメソッドの定義が長...
-
phpでクラスのメソッドで同名の...
-
アマゾンのような評価の星を選...
-
SFTPなどは使わないホームペー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
phpでcookieがうまく保存されない
-
なんでブラウザでPHPを動かすた...
-
PHP8を使うと、大量のWarningが...
-
ワードプレスサイト PHP8.0.25...
-
PHPSpreadsheetを使って関数を...
-
php 入力画面から確認表示画面...
-
PHPのエラーの解消法について教...
-
掲示板のセキュリティについて...
-
php 完了画面の送信メールのコ...
-
PHPのセッション有効期限について
-
掲示板を作成しておりアップロ...
-
PHPでCookieを使った訪問回数に...
-
PHPで画像の渡しが上手く行きま...
-
重複を防ぐ記述について教えて...
-
php 確認表示画面で値をSESSION...
-
ファイルアップロードに関して...
-
メールフォームのタイトルが文...
-
フォームで戻った際に入力済み...
-
PHPで訪問回数を表示するカウン...
-
アップロード画像数でCSSを分け...
おすすめ情報