php 表单选择应该触发 url 更改和值更改

标签 php html

当我更改 select 元素的值时,

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/

相关文章:

PHP类设计问题

javascript - 将外部 json 数据附加到 div 类别明智

HTML,Javascript : How do I load an HTML element when the user scrolls it into view?

php - 获取进行类调用的错误行号和文件名

php - 获取某人登录计算机时使用的名称

javascript - for循环无效字符javascript

html - 如何使用 Jade HTML 添加 br 标签

html - 打印 CSS 对齐表

php - 命名空间不适用于 php 中的 __autoload 魔法函数

php - Nl2br 对除 <li> 标签之外的数据