4 に答える
あなたの目標を達成するためにいくつかの異なる方法があるかもしれません。要求どおりにPHPを使用することに固執する場合は、このようなものがおそらく最適です。ここでは、セキュリティの目的でケース/スイッチを使用し、URL操作を防ぐためにGETの代わりにPOSTを使用しましたが、ケース/スイッチを使用すると、とにかく多くのURL操作に対処したため、好みの問題になります。
<?php
$page = null;
if(isset($_POST['page'])){
$page = $_POST['page'];
}
switch($page){
case 'page3': include_once('/path/to/page3content.php'); break;
case 'page2': include_once('/path/to/page2content.php'); break;
case 'page1': include_once('/path/to/page1content.php'); break;
default: include_once('/path/to/defaultcontent.php'); break;
}
?>
<form name="myform" action="" method="post">
<select name="page" onchange="this.form.submit()">
<option value="page1"<?php if($page == "page1"){ echo " selected"; }?>>Page 1</option>
<option value="page2"<?php if($page == "page2"){ echo " selected"; }?>>Page 2</option>
<option value="page3"<?php if($page == "page3"){ echo " selected"; }?>>Page 3</option>
</select>
</form>
ただし、ファイル構造によっては、基本的なJavascriptとHTMLを少し使用するだけで、同様の作業をさらに簡単に実行できます。
<select name="page" onchange="window.location=this.value">
<option value="/path/to/page1.php">Page 1</option>
<option value="/path/to/page2.php">Page 2</option>
<option value="/path/to/page3.php">Page 3</option>
</select>
送信ボタンをバイパスして、次を使用することもできます。
<form action="index.php" name="myForm" method="post">
<select onchange="window.location.href = this.value" name="select">
<option value="index.php?page=yourpage">yourpage</option>
<option value="index.php?page=yourpage2">yourpage2</option>
</select>
</form>
次に、コンテンツの行き先は次のとおりです。
<?php
if (isset($_GET['page'])) {
if ($_GET['page'] == "yourpage") {include("pages/page1.php");}
else ($_GET['page'] == "yourpage2") {include("pages/page2.php");}
} else {include("pages/default.php");}
?>
タグにフィールドがあり、タグにname
フィールドが必要です。select
value
option
<form name='myform' action='myform.php' method='POST'>
<select name='myselect'>
<option value='1'>Option 1</option>
<option value='2'>Option 2</option>
<option value='3'>Option 3</option>
</select>
<input type='submit'>
</form>
次に、PHP ページは を介して選択を受け取ります$_POST['myselect']
。
select オプションのフォーム onChange イベントを送信できます。
次に、 を実行して$_GET
、の値を比較することにより、その特定のページに適切なコンテンツを表示できます。$_GET['page']
<form action="page.php" method="get">
<select name="page" onchange="this.form.submit()">
<option value="page1">Page 1</option>
<option value="page2">page 2</option>
</select>
</form>
<?php
if(isset($_GET['page'])){
if($_GET['page']=="page1"{
//content for page 1
}elseif($_GET['page']=="page2"{
//content for page 2
}
}
?>
この方法では、送信ボタンも必要ありません。の値を比較して特定のページにリダイレクトすることもでき$_GET['page']
ますが、作業を完了するには、適切な方法ですべてのページにこのフォームを含める必要があります。