- ベストアンサー
PHPのランダムループにラジオボタンを付加
- PHPのコードには、問題の不正解を複数呼び出し、正解を1つ呼び出してシャッフルして表示させる機能があります。
- しかし、このコードにラジオボタンを付け加えることは難しいようです。
- 正しい文法を使ってコードにラジオボタンを追加する方法を模索してください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ええと、まず前回までの分を整理しましょうか。 echoというのはエコーって読むんですが、文字列を出力するものです。 それで私の3回目のレスに書いている文字列連結という意味は $mondai_hyouji[$count] = "<input type=\"radio\" name=\"kotae\" value=\"不正解です!\"/>".$mondai[$hazure_key]; $mondai_hyouji[3] = "<input type=\"radio\" name=\"kotae\" value=\"正解です!\"/>".$mondai[$seikai_key]; という形で問題に対して連結すればいけるんじゃないですか?というのが主旨です。 つまり、そのタイミングでechoする、というわけでは無く 選択させたい問題の文字列にラジオボタンを追加する、という方法のヒントでした。 なので3回目のレスお礼に書かれているコードのようにセット時にechoするのではなく 上記のように配列にセットする際に文字列連結で問題と一緒にセットすると いくらシャッフルしようが配列の中にその文字が入っているので問題ないはずです。
その他の回答 (3)
- Reginleif
- ベストアンサー率37% (9/24)
ああ、ただのコードサンプルでしたので・・すいません。解りにくかったですよね(・ω・;) 表示用の変数にセットする前に入れてしまえば、一緒にシャッフルされませんか? $mondai_hyouji[$count] = $mondai[$hazure_key]; とか $mondai_hyouji[3] = $mondai[$seikai_key]; の辺りで一緒にセットすればいけそうですが。。 あと文字列の連結は . (ピリオド)を使えば可能です。 "あ"."い"."う" という感じに。
お礼
いえ!表示できただけでも前進できたのでありがたいです! echo "<input type=\"radio\" name=\"kotae\" value=\"不正解です!\"/>$yomi[$hazure_key]"; $yomi_hyouji[$count] = $yomi[$hazure_key]; echo "<input type=\"radio\" name=\"kotae\" value=\"正解です!\"/>$yomi[$seikai_key]"; $yomi_hyouji[3] = $yomi[$seikai_key]; こんな感じでしょうか? それでもシャッフルしたものを表示したらラジオボタンが外れてしまいました…
- Reginleif
- ベストアンサー率37% (9/24)
つまり echo "<input type="radio" name="kotae" value="不正解です!"/>$mondai_hyouji[$hazure_key]<br/>"; と記述していたのでしょうか? それならばタグ中の「"」が文字列を表す「"」と混同してしまうので、それをエスケープしなければいけません。 それが文法エラーのもとになります。 type="radio" name="kotae" value="不正解です!" 6個の"がありますよね。 それをエスケープ文字を使って、文字列の「"」として認識させる必要があります。 例。 type=\"radio\" という感じですね。
お礼
echoを使わずにformでやってました… echoを使うことによってボタンの精製はできました!ありがとうございます!エスケープ文字も勉強になりました。 シャッフルの後に付けたらボタンだけになってしまいました、 シャッフルしてしまった配列の中身に個別のボタンを付加するのは難しいでしょうか?質問ばかりですみません
- Reginleif
- ベストアンサー率37% (9/24)
ラジオボタンの記述はどのようにされましたか? タグの中にダブルクォート(")が含まれているなら もう1ステップ用意してそっちエスケープして、echoするなどの方法もありかもしれません。
お礼
ありがとうございます!
補足
<input type="radio" name="kotae" value="不正解です!"/>$mondai_hyouji[$hazure_key]<br/> をループの中に入れて、 <input type="radio" name="kotae" value="正解です!"/>$mondai_hyouji[$seikai_key]<br/> を正解の後につけようとしました。 シャッフルの後につけるべきだったでしょうか? 何を選んだのか記憶しておきたいのですが、ループやシャッフルをしているのでどう記述すればよいのかこんがらがってしまいました…
お礼
すみません…勘違いしてました… 仰る通りに配列にラジオボタン毎突っ込んだら表示されました! ラジオボタンしか表示されなかったのですがどうにかしてやってみます! 重ね重ねありがとうございました!