0

我正在尝试将 php 会话从一个页面传递到下一个页面。但是,当我加载第二页时,url 会发生变化,但会重新加载第一页。第 2 页中的任何内容都没有出现。我觉得是 isset 线搞砸了,但我可能错了。任何关于我可能会出错的想法将不胜感激。

第 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";
?>
4

1 回答 1

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 页的响应。

于 2013-11-13T08:59:05.150 回答