質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

2315閲覧

順位予想ゲームでの判定のやり方について

gyoruo

総合スコア61

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/08/11 09:02

編集2020/08/11 09:03

順位予想ゲームを作成しているのですが、判定部分で困っています。
順位予想は文字列で受け取っているのですが、if()の()の部分にはどのような式を書けば意図した通りに動くのかわからないので、アドバイス等をお願い致します。

現状の理解としては、$numbersで受け取っている値は数値ですが、$exceptで受け取っている値は文字列なので、どのようにすれば判定できるのか混乱しています。

理想としては、予想が的中したら、予想的中の文字を表示させ、予想が外れたら、はずれと表示させたいです。

HTML

1<!DOCTYPE html> 2<html lang="ja"> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 </head> 8 9 <body> 10 11 <form action="../php/test.php" method="GET" name="form"> 12 13 誰が1位か予想してください: 14 <select class="select_position" name="except"> 15 <option value="1位として予想">1位として予想</option> 16 <option value="2位として予想">2位として予想</option> 17 <option value="3位として予想">3位として予想</option> 18 </select><br> 19 <div> 20 <input type="radio" name="name" value="ゆうき"> 21 <span>?位</span> 22 ゆうき 23 </div> 24 <div> 25 <input type="radio" name="name" value="かい"> 26 <span>?位</span> 27 かい 28 </div> 29 <div> 30 <input type="radio" name="name" value="まさる"> 31 <span>?位</span> 32 まさる 33 </div> 34 35 <div><input type="submit" value="スタート"></div> 36 </form> 37 </body> 38</html> 39

PHP

1<?php 2$name = $_GET["name"]; 3$except = $_GET["except"]; 4$numbers = range(1, 3); 5shuffle($numbers); 6 7function Result() { 8 global $numbers; 9 10 if (ここに何を書けばいいのか不明です) { 11 print "予想的中"; 12 } else { 13 print "はずれ"; 14 } 15} 16?> 17 18<!DOCTYPE html> 19<html lang="ja"> 20 <head> 21 <meta charset="UTF-8"> 22 <title></title> 23 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 24 </head> 25 26 <body> 27 28 あなたの予想:<?php echo $name."を".$except;?> 29 30 結果:<?php Result() ?> 31 32 <div><a href="../html/test.html">もう一度遊ぶ</a></div> 33 </body> 34</html> 35

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hentaiman

2020/08/11 09:08

通常、selectタグのoption value=""の値には数値ないしアルファベットを使用しますが、それを出来ない理由はありますか?
m.ts10806

2020/08/11 09:25

私も文字列そのままではなくコードのような形態で持つことのほうが多いです。 配列などで定義しておいて同じ情報で構成すれば整合性はとれますし。
gyoruo

2020/08/11 10:10

お二方、ご回答ありがとうございます。 確かに、value="1"など、数値で渡してphpの方でif()を使う方が汎用性が高いですよね、、、気が付きませんでした。 ありがとうございます!
guest

回答1

0

ベストアンサー

いずれにしても「対応表」のようなデータを持っておくことで実現可能です。
1=りんご
2=みかん
3=ぶどう
のように。
基本的に変わらないのであれば「マスタデータ」としてDBや設定ファイル(定数)に持っておくやり方もあります。
セレクトボックスのoptionもそのマスタデータから作るようにすれば実装も楽になります。

蛇足。
$numbersをResult()の中でしか使わないのならわざわざグローバルスコープで定義してglobalで渡す必要はないです。
あとできれば、なるべくglobalを使わなくて良くなる実装をご検討ください。

投稿2020/08/11 09:41

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gyoruo

2020/08/11 10:12

ご回答ありがとうございます。 また、実装のしやすさまで教えていただきありがとうございます。 value="1"などデータで渡してphpのifで制御してみたいと思います。
m.ts10806

2020/08/11 20:36

そうですね。1つずつ。 データの共有のしかたのコツが見えれば効率的に組めるようになります。
gyoruo

2020/08/14 15:03

ありがとうございます! その言葉でやる気がでました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問