gpt4 book ai didi

javascript - AJAX 成功返回旧结果

转载 作者:行者123 更新时间:2023-11-30 07:43:33 26 4
gpt4 key购买 nike

我正在使用 AJAX 将序列化数据发送到 items.php 文件,我正在使用 FireBug 检查结果,AJAX 发送这样的数据 category=2 我的 items.php 文件是:

<?php
require_once('db.php');
if (isset ($_POST['category'])) {
$kat = mysql_real_escape_string($_POST['category']);
if ($kat == 0){
$kat = '';
}elseif ($kat == 1){
$kat = 'ORDER BY date DESC';
}elseif ($kat == 2) {
$kat = 'ORDER BY price DESC';
}elseif ($kat == 3) {
$kat = 'ORDER BY price';
}
}else{ $kat = '';}
$query = "SELECT * FROM prekes ".$kat."";
mysql_query("SET NAMES 'UTF8'");
$q = mysql_query($query) or die(mysql_error());
$i = 0;
while($f = mysql_fetch_array($q)){

echo '<div kaina="'.$f['kaina'].'" class="prekes"><img src="prekes/'.$f['foto'].'">'.$f['pavadinimas'].'<br /><strong>'.$f['kaina'].'Lt </strong></div>';
}
?>

这是我的 AJAX 成功函数:

   $.ajax({
type: 'POST',
url: 'items.php',
data: cleaned,
success: function () {
$('#items').fadeOut("fast").load("items.php?ts="+ $.now()).fadeIn("fast");
}
});

成功后 Div 会刷新,但我变老了,结果是无序的。为什么会这样?

最佳答案

因为 load 方法在内部使用 jQuery get 方法,我猜你正在获取缓存 数据。确保发送一个唯一键作为查询字符串的一部分,它会给你新的内容/结果/未缓存的数据。您可以使用 Date 对象来创建一个新的唯一字符串;

$('#items').fadeOut("fast").load("items.php?ts="+new Date().getTime())

编辑: jQuery 有一个名为 $.now() 的小方法给你一个独特的时间戳。您可以使用它而不是编写 Date().getTime() 方法。

$('#items').fadeOut("fast").load("items.php?ts="+ $.now())

The $.now() method is a shorthand for the number returned by the expression (new Date).getTime().

谢谢Kevin指出。 :)

编辑 2:看到代码后

1) 您没有传递用于返回有序列表的 category 查询字符串值。您应该像这样传递它

$('#items').fadeOut("fast").load("items.php?category=2&ts="+ $.now())

2) load 方法是一个GET 请求。在您的 PHP 代码 (items.php) 中,您正在使用 $_POST 访问它(正确吗?不应该是 $_GET 吗?

所以改变

$kat = mysql_real_escape_string($_POST['category']);

$kat = mysql_real_escape_string($_GET['category']);

关于javascript - AJAX 成功返回旧结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11563136/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com