我正在尝试将php会话从一个页面传递到下一个页面。但是,当我加载第二页时,网址会更改,但第一页会重新加载。第二页上没有任何内容出现。我觉得这是混乱的线,但我可能是错的。任何关于我可能出错的想法都将不胜感激。
第0页html:
<div id="login">
<p>Username:
<input type="text" id="loginName" Required>
</p>
<p>Password:
<input type="password" id="loginPass" Required>
</p>
<span id="loginError">Please enter a username AND password</span>
第0页jquery(这使用重定向插件):
$("#login").dialog({
modal: true,
buttons: {
Login: function(){
var userName = $("#loginName").val();
var userPass = $("#loginPass").val();
var request1 = $.ajax({
url: "indexDb.php",
async: true,
type: "POST",
data:{uName:userName, uPass:userPass, func:1},
dataType: "html"
}).success(function(data){
if(data == "Password Not Found"){
//alert(data);
$("#loginError").text("The password you entered was incorrect");
$("#loginError").show();
}
else if(data == "Name Not Found"){
$("#loginError").text("The username you entered was not found");
$("#loginError").show();
}
else{
uid = data;
$.ajax({
url: "home.php",
type: "POST",
data: {uName:uid},
datatype: "text"
}).success(function(data){
alert("user:" + data);
$().redirect('home.php', {'uName': data});
});
}
})//end success
} //end of login button
} //end of buttons
}); //end of dialog
第1页:
<?php
session_start();
if(isset($_POST['uName'])){
$_SESSION['currentID'] = $_POST['uName'];
$curUser = $_POST['uName'];
}
?>
<html>
<a href="page2.php">page 2</a>
</html>
第2页:
<?php
session_start();
echo $_SESSION['currentID']."hi";
?>
答案 0 :(得分:0)
$().redirect('page1.php', {'uName': data});
你是什么意思?您所要做的就是使用单击或其他事件创建对page1的请求,然后为page2创建另一个ajax请求并检查您的响应。试试这个jquery代码。
$('#check').click(function()
{
//Submit the form
$.ajax({
url: "page1.php",
type: "POST",
data: {uName:"Your Name"},
datatype: "text"
}).success(function(data){
alert("user:" + data);
$.ajax({
url: "page2.php",
type: "POST",
datatype: "text"
}).success(function(data){
alert("Page2:" + data);
});
});
});
这是你的HTML
<div id = "check">Trigger</div>
所以,当你单击“触发器”时,JQuery会调度page1的请求,你可以在第一个请求的JQuery回调中设置你的会话,然后你就会得到第2页的第2页请求。