我的问题是这些。
%5B%5D是什么我怎样才能像这样更改url
http://localhost:5757/alpool/?alp-search=true&cat_s=358,399
%5B
和%5D
的URL编码版本[
(左方括号)和]
(右方括号)字符。看见Percent-encoding reserved characters 在维基百科上。您可以使用JavaScript“更改”它,下面是一个示例,说明如何在不对form
您当前拥有的标记:
您需要做的唯一更改是添加alp-search-form
到class
的属性form
. 其余部分可以/应该保持不变此方法在使用和不使用JavaScript时都有效;但是,当然,如果没有JavaScript,您将得到带有URL编码方括号的“丑陋”URL
The JS Script
jQuery( function( $ ) {
$( \'.alp-search-form\' ).on( \'submit\', function( e ) {
e.preventDefault();
var url = $( this ).attr( \'action\' ),
cat_ids = $( \'select[name="cat_s[]"]\', this ).val() || [],
s = /\\?[a-z0-9]+/i.test( url ) ? \'&\' : \'?\';
url += s + \'alp-search=true\';
url += \'&cat_s=\' + cat_ids.join( \',\' );
// "Submits" the form.
//location.href = url; // Uncomment after done testing.
alert( url ); // Remove this after done testing.
} );
} );
Demo on JS Bin
Additional Note
在PHP脚本中/
function
处理表单数据(或处理搜索)的
wp_parse_id_list()
功能)获取所选类别ID:
// This variable will/should always be an array.
$cat_ids = isset( $_GET[\'cat_s\'] ) ?
wp_parse_id_list( $_GET[\'cat_s\'] ) : array();