更改网页网址并根据$ _POST值进行保存
我有一个WordPress网站,header.php
要求每页都有。在header.php
上,我有一个表格供用户选择产品类别。在更改时,表单会将用户重定向到我的服务器上的我的类别页面category.php
,但在浏览网站时显示为/类别。
在header.php中:
<form method="POST" action="category" id="cateogry-filter-pick">
<select class="selectpicker" id="category-filter" name="cat">
<?php
$category_list = $wpdb->get_results("SELECT DISTINCT product_category FROM $table_name;");
foreach($category_list as $key => $row): ?>
<option value="<?php echo str_replace(' ', '-', $row->product_category);?>"><?php echo $row->product_category;?></option>
<?php endforeach; ?>
</select>
</form>
上定制js.js
$(function(){
$('#category-filter').on('change', function() {
this.form.submit();
});
});
在category.php,我可以ASIGN类别的变量,然后循环显示我所有的结果,使用:
$product_category = isset($_POST['cat']) ? $_POST['cat'] : null;
在我的分类页面,我也使用与AJAX/$ _GET一些分类过滤器,这将网址更改为类似这样:
/category/?sort=rating
在这样做时,我失去了送类别的价值从任何以前的$_POST
。
我最终想要做的是将我的网页网址从/category
更改为/the-name-of-the-category/
(即$_POST['cat']
),并在使用我的排序过滤器时保留此值。然后我的网址将成为类似:
www.mywebsite.com/shoes/?sort=rating
什么是这样做的,考虑到我也想谁在他们的浏览器,如www.mywebsite.com/shoes
键入一个URL来访问同一页面的用户的最佳方法。
(抱歉不好英语)
当你提交一个表单(提交按钮或JavaScript),它会重定向到表单的动作(action="category"
)到:
url: www.mywebsite.com/category
,如果你想被重定向到www.mywebsite.com/your-category
你必须做,在category.php:
$product_category = isset($_POST['cat']) ? $_POST['cat'] : null;
if($product_category)
{
$url = "www.mywebsite.com/".$product_category;
}
,如果你想保留?sort=rating
或其他$_GET
瓦尔没有失去你的一个类别,你必须附加到您的网址category.php:
$url = "www.mywebsite.com/".$product_category."/?".$my_get_vars;
其中$my_get_vars
包含您以前的网址
的查询一部分,但如果您的过滤器(查询变量)来自ajax调用,您必须将您的ajax请求发送到当前url:www.mywebsite.com/selected-category
而不是www.mywebsite.com/category.php
以保留您选择的类别。
希望得到这个帮助!
请您详细说明'if'条件下的内容。重定向可以自动吗? – LaGuille
对不起,在我完成之前发送回答,现在完成了。 –
感谢您的回答,只是不太清楚我应该如何处理'$ url' – LaGuille