问问题
34716 次
4 回答
6
可能有几种不同的方法可以实现您的目标。如果我们按照您的要求坚持使用 PHP,那么这样的事情可能是最好的。出于安全目的,我在这里使用了 case/switch 并使用 POST 而不是 GET 来防止 URL 操作,尽管使用 case/switch 无论如何您已经解决了很多 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>
于 2013-02-01T18:20:58.443 回答
1
您还可以绕过提交按钮并使用以下内容:
<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");}
?>
于 2013-02-01T18:19:32.277 回答
1
您需要在标签中有一个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']
。
于 2013-02-01T17:59:59.283 回答
1
您可以提交 select 选项的 onChange 事件的表单。
然后您可以运行 a$_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']
但是您需要使用适当的方法在每个页面中包含此表单以完成您的工作。
于 2013-02-01T18:00:07.683 回答