プロが教えるわが家の防犯対策術!

1.phpの中に1と2の選択肢(ラジオボタン)があります。
・1を選択肢し、submitボタンを押すと【2.php】に移動。
・2を選択肢し、submitiボタンを押すと2.phpを無視して【3.php】に移動。

というプログラムを組みたいのですが、
新しくa.phpというファイルを作成し、
条件分岐、includeかrequire関数でファイルの挿入をする方法しかないのでしょうか?

この方法でも問題なく動いているのですが、
ファイル数が増えてしまい邪魔になってしまいます。

他に方法がありましたら教えてください。
よろしくお願いします。

A 回答 (3件)

デフォルトのページを1.phpとした場合



if($_GET){
if($_GET["a"] == "1"){
-- お菓子が好きなら --
header("LOCATION:2.php");
}else{
-- 嫌いなら --
header("LOCATION:3.php");
}
}else{
-- デフォルト表示 --
?>
お菓子は好きですか?
<form action="1.php" method="GET">
<input type="radio" name="a" value="1">好き
<input type="radio" name="a" value="2">嫌い
<input type="submit" value="送信">
</form>
<?php
}

では、どうでしょう?
ただし、移動後のページには引数は渡されません。
    • good
    • 0

> ファイル数が増えてしまい邪魔になってしまいます。


1機能につき1ページ1ファイルと言うのはある程度理にかなっていますが、ちょっとした画面遷移でいちいちページを作っていたらたまらないと言う事はありますね。

ある程度機能をまとめて一つのファイルにするという事も簡単です。送信されたデータによってswitchで分岐し、表示を決めます。

<?php
//ヘッダー等略
$formstr =<<<EOC
<form action="" method="post">
<input type="radio" name="cc" value="1" />1を選択
<input type="radio" name="cc" value="2" />2を選択
<input type="submit" name="sbm" value="send" />
</form>
EOC;
switch($_POST["cc"]){
case 1 : echo "2.phpの内容";break;
case 2 : echo "3.phpの内容";break;
default : echo $formstr;
}
//以下略
?>

ファイル数はかなり少なく出来ますが、複数でプログラミングするような場合は分かりにくいというデメリットはあります(ファイル数がむやみに多い事も同じですけどね)。

どこかでバランスをとっていく必要がありますね。

参考まで。
    • good
    • 0

少し意味が分からないのですが・・・



>・1を選択肢し、submitボタンを押すと【2.php】に移動。
>・2を選択肢し、submitiボタンを押すと2.phpを無視して【3.php】に移動。

ダイレクトに2.php もしくは 3.phpに移動させたいってことですか?
それなら JavaScript で移動先を指定してやればできます。

a.php のみで処理したいなら別にinclude や require 使わなくても
条件分岐だけで処理すればいいだけだと思うのですが。
ユーザー関数を使うとか。

質問の意味が違ってたらごめんなさい

この回答への補足

質問文が分かりづらくてすみません。
通常なら
1.php → 2.php → 3.phpと移行していくのですが
例えば1.php内で
『お菓子がすきですか?』という質問に対して
選択肢が
1:好き
2:嫌い

・1を選択しsubmitボタンを押すと
2.phpの『どのようなお菓子がすきですか?』の質問に移行。
2.phpの選択肢を選んでsubmitボタンを押すと、3.phpに移行。

・2を選択すると
  2.phpに移行せずにダイレクトに3.phpの『ジュースは好きですか?』の質問に移行。

携帯のサイトを作成している為、
JavaScriptが使えないのです。。。

補足日時:2007/06/22 13:31
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!