Shorten URL by removing empty GET variables and simplifying variable names(通过删除空的 GET 变量和简化变量名称来缩短 URL)
问题描述
我在一个网站上工作,在该网站上提交了一个 GET 表单 后会组成一个 URL.表单值作为一组变量传递,必须至少定义一个变量才能使数据库搜索工作.我想通过删除空表单元素来缩短 URL,并通过简化变量名称使其更加用户友好.
I am working on a website where an URL is composed after submitting a GET form. The form values are passed as an array of variables of which at least one must be defined for the search on the database to work. I would like to shorten the URL by removing the empty form elements and to make it more user-friendly by simplifying the variable names.
目前,URL 看起来像这样(只是有更多的变量):
At the moment, the URL looks like this (just with a lot more variables):
http://localhost/example/search?FormName[name]=lorem+ipsum&FormName[id]=&FormName[age]=&yt0=Search
我的目标是让它看起来像这样:
I aim to make it look like this:
http://localhost/example/search?name=lorem+ipsum
为了做到这一点,我有以下问题:
In order to do this, I’ve got the following questions:
我了解到,在使用 GET 方法时,仅使用 PHP 无法删除空表单元素,因为这是 html 表单的标准行为.有没有办法用 yii 的 urlManager 来做到这一点?
我可以将FormName[name]"替换为name"之类的更短的内容而不更改变量名称,例如使用正则表达式?
Can I replace "FormName[name]" with something shorter like "name" without changing the variable name, e.g., with regular expressions?
任何帮助将不胜感激.
推荐答案
简单的方法,如果 jQuery 是一个选项:
Simple method, if jQuery is an option:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
(function($) {
$('form').submit(function() { // ## Clean GET on Submit
$('form input').each(function() { // ## Check each Input
if ($(this).val().length == 0) { // ## If Empty
$(this).attr('disabled', true); // ## Disable Input
}
});
});
})(jQuery);
</script>
这篇关于通过删除空的 GET 变量和简化变量名称来缩短 URL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:通过删除空的 GET 变量和简化变量名称来缩短 URL
基础教程推荐
- 使用 PDO 转义列名 2021-01-01
- 在 yii2 中迁移时出现异常“找不到驱动程序" 2022-01-01
- 如何在 Symfony 和 Doctrine 中实现多对多和一对多? 2022-01-01
- PHP 守护进程/worker 环境 2022-01-01
- phpmyadmin 错误“#1062 - 密钥 1 的重复条目‘1’" 2022-01-01
- HTTP 与 FTP 上传 2021-01-01
- 如何在 XAMPP 上启用 mysqli? 2021-01-01
- 在 CakePHP 2.0 中使用 Html Helper 时未定义的变量 2021-01-01
- 找不到类“AppHttpControllersDB",我也无法使用新模型 2022-01-01
- Doctrine 2 - 在多对多关系中记录更改 2022-01-01