我将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']变量中指定的数量,为什么?
发布于 2014-03-21 16:45:19
首先,您已经在使用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或本地存储中,以避免对服务器进行不必要的调用.
https://stackoverflow.com/questions/22564504
复制相似问题