由于数据是通过 AJAX 加载的,因此不应该有任何要更新的链接 - 至少如果您指的是 anchor tags 则不会<a>
。您甚至不需要将过滤器存储在隐藏字段中。
我会将所有过滤器存储为 JSON 对象。根据 API 的设置方式,您可能必须将 JSON 对象转换为 API 可用的对象,或者您甚至可以直接在$.ajax
请求中传递 JSON 对象。
id="price"
此示例代码假定您在标记中有一个文本框。我故意convert_filters_to_parameters
留空,因为您没有提供有关 API 的任何详细信息。jQuery 会依次将这些参数序列化为 GET 或 POST 请求,然后再将它们发送出去。
var filters = {
distance:null,
price:null,
sortBy:'distance'
}
//this assumes you have a textbox with id="price"
$('#price').changed(function()
{
filters.price = $(this).val();
refresh_data();
});
function refresh_data()
{
var parameters = convert_filters_to_parameters(filters);
$.ajax('/my_api',
{
//i left out a lot of properties here for brevity
data: parameters,
success: function(response) { alert(response); }
});
}