php if文? セレクトボックスの選択に応じて、次ページで表示するものも変えたい。
授業評価アンケートのデータ収集システムを開発中です。
page1.php
では、
年度(セレクトボックス)[nendo]
学年(セレクトボックス)[gakunen]
クラス(セレクトボックス)[class]
科目名(テキストボックス)[kamokumei]
科目コード(テキストボックス)[kamokucode]
分類(テキストボックス)[kind]
履歴者数(テキストボックス)[people]
を選択及び入力します。
page2.php
では
page1.php
で選択及び入力された情報をPOST?hidden?などを利用し、
年度:2011
学年:1
クラス:1
科目名:国語
科目コード:11L901
分類:講義科目
履歴者数:40
のように表示させ、その下にアンケートの回答者数を入力する表を示します。
分類のセレクトボックスには4種類の項目があります。
講義科目・体育科目・実験科目・HR
です。
分類により、アンケートの設問数が異なるようにしたいのです。
たとえば、
講義科目は設問が1~5。体育科目は1~8。実験科目は1~10。HRは11~15。
だとします。
page1.php
入力された「分類」に応じて、設問数の異なる、
page2.php
を表示したいのですが、わかりません。
また、アンケートの表については、
A~F評価があり、
設問1のAならそのマスをname="1A"、設問2のBならname="2B",・・・というようにしています。
page3.php
入力したものを全て表示し、で確認ページとし、
page4.php
で、「登録」ボタンを押すと、
年度
学年
・
・
・
履歴者数
・
・
・
1A
1B
・
・
・
15F
(↑のような構造のtableも用意済み)
のデータをmysqlに挿入します。
「分類」による分岐をせず、
page2.phpで、設問数1~5の場合で、データの挿入には成功しました。
6~15については、空となっています。
「分類」により設問数の異なるpage2.phpを表示し、
現在の段階のように、データを挿入できるような形態にできませんでしょうか?
どうかお願いしたします!!!!!!!!!!
時間がありません><
お願いします!!!!
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
こんばんは。
>require_once '/HTMLファイルのディレクトリ/kougi.html';
>のところはphpではいけないのでしょうか?
ちょっと???ですが・・・、何でもいいですよ。テキストでも・・・。
page1.php
これは問題ないですよね?
普通にフォームに入力(選択)してもらって、page2.phpを呼べばいいです。
page2.php
>「分類」によって、page2.phpで表示されるアンケートの設問数を変えたいのです。
はい。
なので、設問数が違うhtml(phpでもいいけど、phpにする必要もない・・・)を用意しておきます。
>page1で選択した分類が・・・という風にしたいです。
そうです。
なので、require_onceでif文を書いて、読み込むhtmlを変えるんです。
これでpage1.phpで選択された分類によって、表示するページ(設問数が変化する)を変えることができます。
それぞれに用意しているhtmlは、それぞれの入力フォームでpage3.phpを呼び出せばいいです。
page3.phpは、どこから呼ばれても関係なく、page2.phpの入力(選択)結果を表示すればいいだけですし、
同様にpage4.phpも、入ってきたリクエストだけDBに入れればいいだけです。
page1.phpからpage2.phpにPOSTしたデータは、前述のように、page2.php側で$_POSTで取れますし、includeするhtmlへの渡し方も、前述の通りでOKです。
No.3
- 回答日時:
こんばんは。
できたのかな・・・?
>すみません、たぶん後者です。
例えば・・・、
page1.php
<?php
なんやかんや・・・
<form action="/page2.php" method="post">
<select name="nendo">
<option value="2010">2010</option>
<option value="2011">2011</option>
略
</select>
</form>
なんやかんや・・・
?>
page2.php
<?php
なんやかんや・・・
$nendo=$_POST['nendo'];
なんやかんや・・・
require_once '/HTMLファイルのディレクトリ/kougi.html';
?>
kougi.html
<html>
<head>略</head>
<body>
<?=$nendo?>
または
<?php echo $nendo?>
なんやかんや・・・
</body>
</html>
みたいな感じです・・・。
これでpage1.phpからPOSTされた年度が表示されます。
わざわざありがとうございます!!
まだできていません。
学校のPCで開発しているのですが、土日に工事で停電だったものですから、作業ができずでした・・・・
require_once '/HTMLファイルのディレクトリ/kougi.html';
のところはphpではいけないのでしょうか?
page1.php
では年度(セレクトボックス)・学年(セレクトボックス)・クラス(セレクトボックス)・科目名(テキストボックス)・科目コード(テキストボックス)・分類(テキストボックス)・履歴者数(テキストボックス)を入力します。
そしてpage2.phpに
「分類」によって、page2.phpで表示されるアンケートの設問数を変えたいのです。
page2.phpで表示される内容について、
page1で選択した分類が
講義科目なら、設問数5のアンケート
実験科目なら、設問数10のアンケート
選択科目なら、設問数15のアンケート
HRなら、設問数15~-20のアンケート
という風にしたいです。
page2.phpだけで表示できないのなら、他の方法でもいいのですが、わかりません。
そして、アンケート結果入力をして、
page3.phpで確認作業
page4.phpでDBへ登録。
という風にしたんですが、
教えて頂いたものを活用する方法がわかりません・・・すみません
よろしくおねがいします!
No.2
- 回答日時:
こんにちは。
考え方は、いたって単純です。
例えば・・・、
kougi.html(設問1-5)
taiiku.html(設問1-8)
など、レイアウトが違うHTMLファイルを作成しておきます。
ある程度は静的に書けばいいのですが、どうしても動的に表示させたいものがあるでしょう。
例えば、前の画面で入力された値など。
この場合、HTML内の表示させたい箇所に、
<?php echo $変数名?>
(ショートタグが使える設定になっているなら<?=$変数名?>でOK)
と書いてやります。
で、問題のpage2.phpですが、
これはクラスになってるんですかね?
それともただのPHPファイル?
前者の場合は、
final class page2{
// エントリポイントのファンクション、名前は適当・・・
public function execute(){
$variables=array();
$variables['変数名(これはHTMLファイルに書いた変数名※$記号はナシ!!)']='値';
// 必要なものを追加・・・。よーするに連想配列
if(HTMLの呼び出し分岐){
$html='/HTMLファイルのディレクトリ/kougi.html';
}elseif(同様){
$html='/HTMLファイルのディレクトリ/taiiku.html';
}// ・・・以下略
ob_start();
extract($variables, EXTR_OVERWRITE); // これでHTMLに出力する変数の配列を展開しています。
require_once $html; // 実際にHTMLファイルをrequire(includeでもOK)する。
$output = ob_get_clean(); // ここでHTMLに変数展開されたもの(出来上がり)が$outputに入ります。
// headerを吐くならここでやっておく(キャッシュ操作とか・・・)
exit($output); // echoと同じ。もうやる事がないのでexit()
}
}
後者の場合は、上からclass定義とfunction定義を外せばいいです。
特にheaderとかを吐かないなら、ob_start()とかも不要です。
っちゅうか、クラス化されていない場合はファイルの上のほうでheader書いてるわな・・・普通。
いずれにしても、HTMLとPHPを分けておいた方が楽ですね。
回答ありがとうございます!!
すみません、たぶん後者です。
できるかわかりませんが、参考にやってみます!!
丁寧な回答ありがとうございます!!
わからなければまたお願いするかもしれませんが、
そのときはよろしくお願いします・・・
No.1
- 回答日時:
こんばんは。
page2.phpでの画面の出し分け(設問数が違うので、何らかの方法で分けないといけないが・・・)はどのようにおこなう予定ですか?
1.htmlの中にPHPコードが書いてある?
2.htmlは外部ファイルにして、PHPでincludeしている?
1ならpage1.phpで呼び分けないといけません。
2ならpage2.phpで分岐処理を書いて、includeするhtmlを振り分けます。
個人的には2が好きですが・・・。
こんばんは!
1で行おうとしました。
何故、知識が浅いもので、if文でできるのかなとか思ったのですが、うまくできずです。
include
ちらっと参考書か何かで見たことがある程度で、実用方法が全然わかりませn;;
直接活かせるようなサンプルソースなど頂けるととても助かります><
どうぞお願いします!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- PHP PHPで訪問回数を表示するカウンタを作成したい 3 2023/05/27 07:09
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP PHP ページング データベース 1 2022/06/16 10:30
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- PHP 文字列を段落で分ける方法を教えて下さい。 2 2023/03/09 10:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字化けで混乱中です...
-
ZendFrameWorkで、.htaccessを...
-
phpでPEAR::DBを使っているので...
-
フォントの色を変えるには?
-
onedrive にexcelファイルをア...
-
php5-extensions を make でき...
-
CFileDialogの最初のディレクト...
-
PHPのみでの背景色は指定できる...
-
リンク先を隠す方法はないでし...
-
2つの画像ファイルが異なるファ...
-
PHPのif文でその処理を途中で抜...
-
index.phpに入るには、どうすれ...
-
3つ以上の論理積は利用可能なの...
-
「クラス関数」「メンバ関数」...
-
index.phpって何ですか? 具体...
-
Q)PHPでメール送信について
-
PHPのFTP関数ftp_fgetエラーに...
-
smartyでホームページ上の画像...
-
phpの処理中に画面表示ををする...
-
【file_exists】ファイルが存在...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正規表現を使い、URLで条件分岐...
-
includeでHTMLファイルを呼出し...
-
PHP file_get_contents 503 ser...
-
centos6のlogにscript not foun...
-
コードがそのまま表示される
-
階層が違う場合の絶対パス相対...
-
連想配列を含むヒアドキュメン...
-
htmlで自分自身を呼び出して整...
-
htaccessでphpとSSIを同時に動...
-
PHPを使用したパンくずリストに...
-
ロリポップでの.htaccess 設定
-
SSI される .inc ファイル内に ...
-
データの呼び出しができません
-
ASPソースコードをPHPソースコ...
-
文字化けで混乱中です...
-
php内 正規表現で特定文字を削...
-
phpの正規表現 置き換え
-
htmlの書き換え
-
html拡張子のままphpを使いたい
-
ヒアドキュメント内にはnumber_...
おすすめ情報