Javascript 使用新函数AJAX重新加载页面

Javascript 使用新函数AJAX重新加载页面,javascript,php,ajax,Javascript,Php,Ajax,我有一个显示最新图像的页面。 我正在使用AJAX请求对这些图像进行排序: $('#trier').on('click', function() { // When i click on button to validate Sort out var b = document.getElementById('genre').value; // parameter Sort out : genre $.post('index.php', {y: b}, function(data)

我有一个显示最新图像的页面。
我正在使用AJAX请求对这些图像进行排序:

$('#trier').on('click', function() {        // When i click on button to validate Sort out
var b = document.getElementById('genre').value;  // parameter Sort out : genre 
$.post('index.php', {y: b}, function(data) {
location.reload(); // reload page with pictures sorted out
});
});
这就是我对图像进行排序的函数:

if(isset($_POST['y'])){              // if they is a sorting out request
function latest($n) {
$genre= $_POST['y'];
$dbCon = mysqli_connect("localhost", "artlibr1_default", "azerty123", "artlibr1_01");
$sql = "SELECT * FROM general WHERE genre='$genre' ORDER BY date_added DESC LIMIT $n, 1";
$query = mysqli_query($dbCon, $sql);
while ($list = mysqli_fetch_assoc($query)) {
 return $list['path'];
}
}}else{                             // default display 
function latest($n) {
$genre= $_POST['y'];
$dbCon = mysqli_connect("localhost", "artlibr1_default", "azerty123", "artlibr1_01");
$sql = "SELECT * FROM general ORDER BY date_added DESC LIMIT $n, 1";
$query = mysqli_query($dbCon, $sql);
while ($list = mysqli_fetch_assoc($query)) {
 return $list['path'];
}
}
(只有sql语句更改)

所以问题是我需要用
$\u POST['y']
数据重新加载页面;但目前页面只是重新加载,没有
$\u POST['y']
数据。

您可以清除
#流派的内容,并用ajax函数返回的数据替换它,而不是重新加载整个页面

您可以清除
#genre
的内容,并用ajax函数返回的数据替换它,而不是重新加载整个页面

而不是使用

location.reload();
你应该使用

location.href = %Construct the URL you want to reload%
而不是使用

location.reload();
你应该使用

location.href = %Construct the URL you want to reload%
您的代码:

  • 从JavaScript发出HTTP请求
  • 使用PHP从数据库获取一些数据
  • 将该数据从PHP发送到JavaScript
  • JavaScript忽略该数据并重新加载页面(使用原始GET请求)
  • 如果要重新加载页面不要使用Ajax。Ajax的要点是,您可以在不重新加载页面的情况下发出HTTP请求

    如果您想使用返回的数据,请不要使用
    location.reload
    ,获取
    数据的值并对其进行处理。

    您的代码:

  • 从JavaScript发出HTTP请求
  • 使用PHP从数据库获取一些数据
  • 将该数据从PHP发送到JavaScript
  • JavaScript忽略该数据并重新加载页面(使用原始GET请求)
  • 如果要重新加载页面不要使用Ajax。Ajax的要点是,您可以在不重新加载页面的情况下发出HTTP请求


    如果要使用返回的数据,则不要使用location.reload,获取数据的值并对其进行处理。

    嗯,您没有正确使用ajax。 也许你应该编辑你的代码

    $('#trier').on('click', function() {        // When i click on button to validate Sort out
        var b = document.getElementById('genre').value;  // parameter Sort out : genre 
        $.post('index.php', {y: b}, function(data) {
            $('#div-need-load-image').html(data) // reload page with pictures sorted out
        });
    });
    
    或者,如果要将图像附加到div,可以尝试使用
    .append()
    而不是
    .html()


    $(“#div需要加载图像”)。追加(数据)

    嗯,您没有正确使用ajax。 也许你应该编辑你的代码

    $('#trier').on('click', function() {        // When i click on button to validate Sort out
        var b = document.getElementById('genre').value;  // parameter Sort out : genre 
        $.post('index.php', {y: b}, function(data) {
            $('#div-need-load-image').html(data) // reload page with pictures sorted out
        });
    });
    
    或者,如果要将图像附加到div,可以尝试使用
    .append()
    而不是
    .html()


    $(“#div需要加载图像”).append(data)

    您正在使用ajax获取内容,然后使用
    位置重新加载页面。reload()
    ,丢失您刚刚获取的内容?@adeneo我正在使用ajax发送数据,但考虑到要使用此新数据重新加载页面;但是ajax并不是这样工作的:/您使用ajax获取内容,然后使用
    location.reload()
    ,重新加载页面,丢失刚刚获取的内容?@adeneo我使用ajax发送数据,但考虑到要使用此新数据重新加载页面;但是ajax不是这样工作的:/#体裁只是一种选择形式#体裁只是一种选择形式。谢谢!但我可以使用AJAX隐藏所有与排序参数不对应的元素,这很有意义,谢谢!但是我可以使用AJAX隐藏所有与排序参数不对应的元素,tho?.html()看起来就是解决方案!我应该想到这一点,但我的javascript知识很差:S!谢谢。html()看起来是解决方案!我应该想到这一点,但我的javascript知识很差:S!谢谢