gpt4 book ai didi

javascript - 将 jquery 的 $(window).scrollTop() 保存为 PHP $_SESSION ['scroll_pos' ] 变量

转载 作者:行者123 更新时间:2023-11-28 01:27:00 26 4
gpt4 key购买 nike

我正在将 post 数据发送到运行 MySql 语句的页面,然后通过页面重定向返回

header("location: {$_SERVER['HTTP-REFERER']}");

我正在尝试使用 Ajax$(window).scrollTop() 值作为 $_GET['scroll_pos'] 发送> 像这样的变量:

<?php session_start(); ?>

$(document).ready(function(){

// SET SCROLL SESSION VARIABLE
$(window).scroll(function(){

var xmlhttp;

if( window.XMLHttpRequest ){
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject( 'Microsoft.XMLHTTP' );
}

xmlhttp.open('GET', 'script_files/set_scroll_session.php?scroll_pos=' +
$(window).scrollTop(), true);
xmlhttp.send();

});

// SCROLL TO $_SESSION['scroll_pos'];
$(window).scrollTop(<?php echo json_encode($_SESSION['scroll_pos']); ?>); // <-- THIS IS NOT FIRING

});

set_scroll_session.php 页面将 $_GET['scroll_pos'] 保存为 $_SESSION['scroll_pos'] 变量,如下所示

<?php

session_start();

// VARIABLES
$scroll_pos = $_GET['scroll_pos'];

$_SESSION['scroll_pos'] = $scroll_pos;

?>

需要调用上面的$(document).ready()函数。

窗口没有滚动到 $_SESSION['scroll_pos'] 变量中指定的数量,这是怎么回事?

最佳答案

首先,您已经在使用 jquery,所以我强烈建议(但是,这不是必需的)您使用 AJAX 方法中内置的 jquery。

https://api.jquery.com/jQuery.ajax/

它不起作用的原因是因为您无法像那样echo出要在JavaScript中使用的值,您必须使用AJAX来获取该值,然后设置滚动位置。

//WILL NOT WORK!!!!
$(window).scrollTop(<?php echo json_encode($_SESSION['scroll_pos']); ?>);

或者更好的是,将滚动位置保存在 cookie 或本地存储中,以避免不必要的服务器调用...

关于javascript - 将 jquery 的 $(window).scrollTop() 保存为 PHP $_SESSION ['scroll_pos' ] 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22564504/

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