我在水下面,使用Laravel我有一个搜索页面,其中ajax调用url并通过包含get vars ($(this).attr('href');
的html链接更新html for filter通过ajax发送的?var=test
返回过滤结果。作为ajax,我不会使用history.replaceState
来更新该网址。
现在我的问题是,链接显示为按钮(使用BS) - 所以我的链接href将包含?thisbuttonvar=whatever
但如果get var已经存在则链接href不应包含?thisbuttonvar=whatever
它应该将其删除
我已经创建了一个函数来尝试处理如下(抱歉,我无法正确粘贴):
function href_append_query($param) {
parse_str($_SERVER["QUERY_STRING"], $query_array);
if (array_key_exists(current(array_keys($param)), $query_array))
{
$key = current(array_keys($param));
if ($param[$key] == $query_array[$key])
{
unset($query_array[$key]);
}
}
else
{
$query_array = $query_array + $param;
}
$query = http_build_query($query_array);
return '?' . $query; }
这个问题是我做的时候
@foreach ($category->subCategories()->get() as $sub_category)
<li><a class="search-filter" href=<?=href_append_query(['sub_category' => $sub_category->sub_category_url])?>>{!! $sub_category->sub_category !!}</a></li>
它适用于第一个链接,但我的所有其他href的内容都是相同的(与第一个进入该功能的内容相同)
任何人都可以协助让这个功能发挥作用,因此foreach链接具有适当的href或完全不同的&#34;更容易&#34;所有在一起的方式:)
我的jQuery,如果它有助于描绘出更好的画面
$(document).on("click", '.search-filter', function(e) {
e.preventDefault();
$('#spinner-modal').modal('show');
$('#spinner-modal p').html('<b>Searching,</b> please wait...<br />');
query = $(this).attr('href');
history.replaceState(null, null, query);
$.ajax({
type: "GET",
url : query,
success : function(data, status){
$('#job-results').html(data);
$('#spinner-modal').modal('hide');
},
error : function(status){
console.log(status);
},
});
});