【问题标题】:Form $_GET URL Manipulation表单 $_GET URL 操作
【发布时间】:2016-02-04 14:11:35
【问题描述】:

我有一个搜索表单:-

<form method="get" action="/jobs/">
        <select name="job_sector">
            <option value="">All sectors</option>
            <option value="Finance">Finance</option>
            <option value="Human Resources">Human Resources</option>
            <option value="Procurement &amp; Supply Chain">Procurement &amp; Supply Chain</option>
            <option value="Sales &amp; Marketing">Sales &amp; Marketing</option>
        </select>
        <select name="job_salary_from">
            <option value="0">Salary range</option>
            <option value="10000">£10,000 - £19,999</option>
            <option value="20000">£20,000 - £29,999</option>
            <option value="30000">£30,000 - £49,999</option>
            <option value="50000">£50,000 - £69,999</option>
            <option value="70000">£70,000 - £99,999</option>
            <option value="100000">£100,000+</option>
        </select>
    </div>
    <div class="col-md-6">
        <select name="job_type">
            <option value="">All job types</option>
            <option value="Permanent">Permanent</option>
            <option value="Temporary">Temporary</option>
            <option value="Interim">Interim</option>
        </select>
        <select name="job_location">
            <option value="">All job locations</option>
            <option value="Leicestershire">Leicestershire</option>
            <option value="Nottinghamshire">Nottinghamshire</option>
            <option value="Derbyshire">Derbyshire</option>
            <option value="Lincolnshire">Lincolnshire</option>
        </select>
    <input id="search-jobs" name="job_search" type="text" placeholder="Search DISTINCT for jobs e.g. Accountant">'
</form>

如果我在不设置任何内容的情况下执行搜索,则 URL 变为:-

http://website.dev/jobs/?job_sector=&job_salary_from=0&job_type=&job_location=&job_search=

如果值为空,是否有任何方法不在 URL 中显示这些,因此搜索 URL 将变为:

http://website.dev/jobs/

如果没有设置值,并且:-

http://website.dev/jobs/?job_sector=finance

如果只选择了一个值。

编辑

我试过了:-

jQuery("form").submit(function(){
    jQuery("input").each(function(index, obj){
        if(jQuery(obj).val() == "") {
            jQuery(obj).remove();
        }
    });
});

但它似乎仍然无法正常工作。

【问题讨论】:

  • 你标记为 php;那么它在哪里呢?它是否与表单在同一个文件中使用?
  • 你真的需要使用 GET 吗?
  • 它是用于搜索的,所以我猜是这样?不然刷新的时候结果被重置了吧?
  • 然后使用条件empty()。没有看到你的 PHP 很难说,但我会使用empty() 和/或isset()。我能提供的最好的。我会自己使用 POST 并避免所有这些。

标签: php forms post


【解决方案1】:

你不能只用 html 来做,你需要 javascript。

看看 Submit only non empty fields from Form

【讨论】:

  • 进行了编辑,我已经尝试了该帖子中的 jQuery 代码,但它仍然显示所有内容。 @Gwendal
  • @nsilva 你是否包含了 jquery 库?
  • @nsilva js 脚本用于输入元素,您正在使用选择。只需将 jQuery('input') 替换为 jQuery('select')
  • 谢谢,您认为我应该更改为 POST 而不是 GET 吗?
  • @nsilva 取决于您的需求。如果您希望您的用户能够为结果添加书签,请保留获取参数。不介意的话可以切换到post和移除js脚本
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-10
相关资源
最近更新 更多