0

我创建了一个 php 函数(在“category-page.php”中称为“category_page”),它将文件中的数据读取到关联数组中,然后生成一些 html 以显示 products.php 上的信息(页面调用“ category_page”函数)

我的目标是允许用户从下拉列表中进行选择,以便在不刷新页面的情况下对显示的信息进行排序。

到目前为止,我已经设法通过document.formname.submit更改下拉列表然后使用$_GET来选择数组中的哪个键进行排序来实现这一点,但是,这会导致页面重新加载。

我对 php、javascript/jquery 有一点了解,并且在 AJAX 上进行了相当多的搜索/阅读,以启用无需刷新/重新加载的更新,但似乎无法将所有部分放在一起。

因此,在 products.php 中,我有以下 javascript/jquery:

function sort_products() {
queryString = "?sort_list="+$("#sort_list").val();
$.ajax({   
    type: 'GET',                                   
    url: 'category-page.php',         
    data: 'sort_list='+queryString
})
}

$("#sort_list").on("change", function() { sort_products() });

然后在 category-page.php 中:

if(isset($_GET['sort_list'])) {
    $sort = $_GET['sort_list'];
} 
else {
    // set default sort order
} 

category-page.php?sort_list=price我已经在 Chrome 的网络面板中验证了正在发送请求,但页面没有更新。任何帮助,将不胜感激!

4

2 回答 2

0

更改这行代码:

$("#sort_list").on("change", function(e) { sort_products(); e.preventDefault(); e.stopPropagation(); });
于 2013-01-24T13:28:27.210 回答
0

发送查询后,您需要对返回的内容进行处理。

$.ajax({   
    type: 'GET',                                   
    url: 'category-page.php',         
    data: 'sort_list='+queryString
})
.done(function(data) {
    // if your php code returns the html you can make something like this
    // the var data will be the html code
    $('#your-container').html(data)
})
于 2013-01-24T13:33:30.713 回答