使用新功能AJAX重新加载页面

时间:2016-02-18 14:37:14

标签: 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) {
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语句更改)
所以问题是我需要使用$_POST['y']数据重新加载页面;但目前网页刚刚重新加载,并且没有$_POST['y']数据。

4 个答案:

答案 0 :(得分:3)

您的代码:

  1. 从JavaScript发出HTTP请求
  2. 使用PHP
  3. 从数据库中获取一些数据
  4. 将数据从PHP发送到JavaScript
  5. JavaScript 忽略该数据并重新加载页面(使用原始GET请求)
  6. 如果您要重新加载页面。 不要使用Ajax 。 Ajax的意思是你在不重新加载页面的情况下发出HTTP请求。

    如果您想使用收到的数据,请不要使用location.reload,取data的值并对其执行操作。

答案 1 :(得分:1)

嗯,你没有正确使用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-need-load-image').append(data)

答案 2 :(得分:0)

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

答案 3 :(得分:0)

而不是使用

location.reload();

你应该使用

location.href = %Construct the URL you want to reload%