私はこれについて多くのことを調査し、同様の質問を1つ見つけました(変数を新しいポップアップウィンドウに渡すを参照)が、それでもセッション変数をポップアップに渡すことができません。簡単に言うと、ユーザーがホームページのさまざまな部分を見ながらコメントを投稿できるように、基本的なコメント ポップアップ ボックスを Web サイトに組み込んでみようとしています。ユーザーがポップアップ ウィンドウへのリンクをクリックするホームページ (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 からも渡されていません。これは、次のように usercomments.php のコメント フィールドに $user を入力すると、次のようになるためです。
<input type='text' id='usercomment' value='<?php echo $user ?>' />
入力フィールドは空白です。私はAJAXを初めて使用するので、助けていただければ幸いです。