我正在从我的jQuery函数向我的身体发送一个值,但似乎jQuery没有发送值。我想在页面加载时触发以下jQuery函数:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src='http://cdn.bitbucket.org/pellepim/jstimezonedetect/downloads/jstz-1.0.4.min.js'></script>
<script>
$(document).ready(function(){
var tz = jstz.determine(); // Determines the time zone of the browser client
jQuery('body').load('index.php?session_name='+tz.name());
});
</script>
</head>
<body>
的index.php:
<?php
session_start();
if (isset($_GET['session_name'])) {$_SESSION['session_name'] = $_GET['session_name'];}
echo $_SESSION['session_name'];
.............. ..............
答案 0 :(得分:1)
PHP GET
从网址获取值,因此当您使用jQuery.load
时,该网页会显示数据但您的网址没有任何GET
请求数据,因此,会话永远不会被设置。
如果您想以这种方式设置会话,只需将页面重定向到您想要的URL并设置会话即可。
所以,而不是这样做:
jQuery的( '主体')的负载( '的index.php会话名称=?' + tz.name());
使用获取值重定向到您的网页:
window.location ='index.php?session_name ='+ tz.name();
使用jQuery执行此操作的更好方法是异步发送请求到页面,这样您就不必重新加载页面了。
最简单的AJAX方式:
$.ajax({
type: "POST",
url: "index.php",
data: { session_name: tz.name() }
}).done(function( msg ) {
// alert( "Session Saved: " + msg );
console.log(msg);
});
你的PHP:
if (isset($_POST['session_name'])) {$_SESSION['session_name'] = $_POST['session_name'];}
echo $_SESSION['session_name'];
答案 1 :(得分:0)
您是否尝试过将该参数作为POST
发送?它会是这样的:
$("body").load("index.php", {param1:value, param2:value, etc.})