当我更改 select
元素的值时,
- 页面应该加载
- 应回应基于值(value)的输出。
- url 应注明http://mysite.com/?sort=value
HTML
<form name="form1" action="" method="post">
<select id="filter1">
<option value="?sort=recent" onselected="this.form.submit();">Most recent</option>
<option value="?sort=views" onselected="this.form.submit();">Most viewed</option>
</select>
</form>
PHP
<?php
if(isset($_GET['filter1']))
{
$term = strtolower($_POST['filter1']);
switch($term)
{
case 'recent':
echo "recent";
break;
case 'views':
echo "by views";
break;
}
}
?>
最佳答案
尝试
<form name="form1" action="newurl.php" method="post">
<select name="sort" onChange="this.form.submit();">
<option value="recent">Most recent</option>
<option value="views">Most viewed</option>
</select>
</form>
请记住您的表单方法是 post,因此排序值将存储在 $_POST['sort'] 上
此外,您可以将表单的方法更改为“获取”并将表单的操作值留空,因为发布时的默认操作行为是调用同一个文件(我们称它为 form.php)并附加获取值(类似于“form.php?sort=selectedvalue”),这已经暗示了 url 的变化,尽管是同一个文件。
关于php 表单选择应该触发 url 更改和值更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8295421/