PHP表单,根据下拉列表选项加载内容

时间:2016-02-10 13:18:31

标签: php html if-statement switch-statement

参考此示例getrusage()

解决方案1,PHP

1)索引表

<form action="loadPage.php" method="POST" name="theForm" id="theForm">
<select form="theForm" name="selectedPage">
  <option value="page_1">Page 1</option>
  <option value="page_2">Page 2</option>
  ...
</select>
<input type="submit" value="Load page" />
</form>

2)PHP处理程序

<?php
//loadPage.php
$requested_page = $_POST['selectedPage'];

switch($requested_page) {
  case "page_1":
    header("Location: page_1.php");
  break;
  case "page_2":
    header("Location: page_2.php");
  break;
  default :
  echo "No page was selected";
  break;
}
?>

我只是想做而不需要点击提交。我想通过单击下拉列表值来实现这一点,然后检查它是否等于Php文件中的值,如果是则显示页面。

非常感谢。

2 个答案:

答案 0 :(得分:3)

编写html如下:

<select form="theForm" name="selectedPage" onchange="this.form.submit()">
  <option value="page_1">Page 1</option>
  <option value="page_2">Page 2</option>
</select>

当您选择选项时,这将提交表单。

答案 1 :(得分:3)

这将导致&#34;重定向&#34;当您在下拉列表中选择一个选项时:

public void showMsgHistory() throws IOException { FileReader reader = new FileReader( "persMsgHistory.txt" ); BufferedReader br = new BufferedReader(reader); messageHistory.read(br, null); } 事件添加到onchange以更改当前浏览器位置。

将选择选项值更改为页面的URL。

(然后您可以在select中删除PHP标题指示。不再需要。)

loadPage.php

Jay Blanchard在评论部分提出的问题的答案:

  

这可以在没有内联JavaScript的情况下完成(为了便于维护和重用 - )

当然,那也是可能的。例如,使用jQuery:

<select form="theForm" name="selectedPage" 

        onchange="if (this.value) window.location.href=this.value">

  <option value="page_1.php">Page 1</option>
  <option value="page_2.php">Page 2</option>
</select>

请参阅http://api.jquery.com/change

或者您可以与$('#SelectId').change(function() { //alert( this.value ); // or $(this).val() window.location.href = 'http://' + this.value; });

绑定
.on('change')
  

你可以不用jQuery吗?

当然,那也是可能的。您可以使用$('#SelectId').on('change', function() { //alert( this.value ); // or $(this).val() window.location.href = 'http://' + this.value; }); 选择元素,并使用document.getElementById()绑定事件处理。

addEventListener