簡體   English   中英

為什么我的會話變量沒有傳遞給彈出窗口?

[英]Why isn't my session variable being passed to popup?

我對此進行了大量研究,發現了一個類似的問題(請參閱將變量傳遞給新的彈出窗口 ),但是我仍然無法將會話變量傳遞給彈出窗口。 簡而言之,我正在嘗試將一個基本評論彈出框合並到我的網站中,以便用戶可以在查看首頁的不同部分時發表評論。 我有一個主頁(home.php),用戶從該主頁單擊指向彈出窗口的鏈接。 請注意,會話變量在home.php上對於頁面的所有其他方面都可以正常工作。 用戶單擊home.php上的注釋彈出框,如下所示打開usercomments.php(彈出沒有問題;有關home.php的相關代碼如下):

<?php session_start();

include 'connect.php';

$_SESSION['login_id'];
$_SESSION['user'];

**$AjaxUser** = $_SESSION['user']; //All bolded text only added here for clarity

?>

//Lots of code

<div id="commentsbox"<?php echo "<a     
href='http://www.website.com/usercomments.php?id=".**$AjaxUser**."'    
onclick=\"wopen('http://www.website.com/usercomments.php', 'popupname',   
'width=600,height=600,scrollbars');return false;\"><img src=\"images/comments.png\"   
style=\"float:right; margin-right:5px\" height=\"22\" width=\"22\"></a>";?></div>

我以為$ AjaxUser傳遞給usercomments.php是錯誤的嗎? 在彈出的usercomments.php中,用戶發布一條注釋,該注釋顯示沒有問題。 但是,用戶名不會與帖子一起顯示(注意:將類似的代碼合並到網站上的現有頁面中而不是作為彈出窗口時,將正確顯示發布者的用戶名...更多證據表明會話變量不傳遞給彈出窗口)。 這是usercomments.php的php和AJAX代碼:

<?php session_start();

include 'connect.php'; 

$_GET['$AjaxUser'];

$user=$_GET['$AjaxUser'];

?>
//lots of code
function ajaxFunction(){
var ajaxRequest;  

try{
    // Opera 8.0+, Firefox, Safari
    ajaxRequest = new XMLHttpRequest();
} catch (e){
    // Internet Explorer Browsers
    try{
        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try{
            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e){

            alert("Problem encountered");
            return false;
        }
    }
}

ajaxRequest.onreadystatechange = function(){
    if(ajaxRequest.readyState == 4){

                    var ajaxDisplay = document.getElementById('ajaxDiv');
        ajaxDisplay.innerHTML = ajaxRequest.responseText;
    }
}

    var user = "<**?php echo $user;** ?>";
    var usercomment = document.getElementById('usercomment').value;


var queryString = "?usercomment=" + usercomment + "&user" + user;
ajaxRequest.open("GET", "AJAX_test.php" + queryString, true);
    ajaxRequest.send(null); 

還是我嘗試獲取$ AjaxUser的方式還是我上面的AJAX代碼中分配var用戶的方式的問題? 我的猜測是$ AjaxUser甚至沒有從home.php傳遞過來,因為當我將$ user輸入到usercomments.php的comment字段中時,如下所示:

 <input type='text' id='usercomment' value='<?php echo $user ?>' />

輸入字段為空白。 我將不勝感激,因為我是AJAX的新手!

您沒有正確使用$_GET['variable'] $_GET由PHP根據URL參數(例如?this=that&thisother=another

$_SESSION變量本身是一個孤獨的變量,無論您在哪里調用session_start();都可以訪問它session_start();

你試一試...

$user = $_SESSION['user'];

而不是ajax頁面上的所有其他聲明。 確保包括session_start(); 在該頁面的頂部。

最后,我看不到您為$_SESSION['user']分配了任何內容,因此請確保為該變量分配了一些內容,例如id或您要使用的任何內容。

但是,如果您堅持要使用$_GET參數傳遞此信息。 ?id部分是您希望在另一頁上引用的鍵。 因此,不是$_GET['**$AjaxUser**']而是$_GET['id']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM