我正在我的移动网站内制作一个商店和信息系统,在刷新浏览器后,所有的功能都很好。
我的问题是,当我刷新消息页并转到我的商店页面时,它会在php mysql脚本中加载,但是如果我改变了商店的过滤器并用jquery重新加载内容,它就不会出现。如果我刷新整页,并试图改变过滤器的商店之后,这一切都像一个魅力。
只有在第一次访问页面时,它才会在jquery刷新页面之后不工作。
我尝试过用jquery重新加载div脚本,但是al也遇到了同样的问题。我还在脚本部分尝试了回显测试。只有当其余部分也在工作时,它才会回显(因此重新加载的div中的所有php都消失了)
我使用的Reloadscript:
$("#ShopScriptsReload").load(" #ShopScriptsReload > *");
Php mysql:
$sql = "SELECT * FROM shop ORDER BY id DESC";
$result = $conn->query($sql);
我用cookies来改变过滤器。因此,使用javascript设置cookie并将其转换为(小编辑:cookie使用硬编码的变量设置):
if (empty($_COOKIE["setFilterCookie"])){$_COOKIE["setFilterCookie"]="1";}
$fltr = $_COOKIE["setFilterCookie"];
if ((empty($fltr) or ($fltr == 1)))
{$WhereFltr = "";}
elseif ($fltr == 2)
{$WhereFltr = "WHERE tag='digitaal'";}
elseif ($fltr == 3)
{$WhereFltr = "WHERE tag='pins'";}
elseif ($fltr == 4)
{$WhereFltr = "WHERE tag='fysiek'";}
$sql = "SELECT * FROM shop WHERE filter='$fltr' ORDER BY id DESC";
$result = $conn->query($sql);
我已经尝试过以下方法:从dom删除以前的页面,删除缓存,尝试删除重新加载部分并使用GET方法(这很好,但这不是我想要的)。
好吧,所有的东西都正常工作,而不需要进行全面的刷新。
先谢谢各位,各位:)
发布于 2019-08-27 13:22:59
这里的问题是,当您正在刷新浏览器时,只有服务器调用,但是刷新JQuery在客户端!为此,您可以使用ajax,我将演示:
在HTML中
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script
src="https://code.jquery.com/jquery-3.4.1.min.js"
integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
crossorigin="anonymous">
</script>
<script type="text/javascript" src="./app.js"></script>
</head>
<body>
<select name="shop-criteria" class="shop-criteria">
<option value="">all</option>
<option value="2">digital</option>
<option value="3">pins</option>
<option value="4">fysiek</option>
</select>
</body>
</html>
在JavaScript中,文件app.js
$(document).ready(function(){
$(document).on('change', '.shop-criteria', function (e) {
let fd = new FormData();
let tag = $(this).val();
fd.append('tag', tag);
$.ajax({
url: "shop.php",
type: "POST",
data: fd,
processData: false,
contentType: false,
complete: function (results) {
let response = JSON.parse(results.responseText);
my_function.call(this, response);
}
});
});
function my_function(response) {
console.log("response", response);
}
});
在PHP shop.php中
`<?php
$tag = $_REQUEST['tag'];
switch($tag) {
case 2:
$WhereFltr = "WHERE tag='digital'";
break;
case 3:
$WhereFltr = "WHERE tag='pins'";
break;
case 4:
$WhereFltr = "WHERE tag='fysiek'";
break;
default:
$WhereFltr = "";
break;
}
$sql = "SELECT * FROM shop WHERE filter='$fltr' ORDER BY id DESC";
$result = $conn->query($sql);`
https://stackoverflow.com/questions/57475568
复制相似问题