0

ajaxを使用して、div内に別のページをロードしたページの変数に直接アクセスする方法を探しています。ある種の get 文字列を使用してそれを Javascript に渡し、それを使用して息子のページを開き、get 通常の GET 関数を使用して変数を取得できることを知っています。より良い解決策を探しています。私はこの親ページを持っています:

<body onLoad="control_post_data(<?php
echo true;
//echo isset($_COOKIE['username']);  // allow after login is done
 ?>)">
<div id="publish_page">

</div>

これはスクリプトです:

function control_post_data(bool){
var div = document.getElementById("publish_page");
var xmlhttp = createXmlHttpRequestObject();
if(bool){
    //user is registered presend post page
    xmlhttp.onreadystatechange=function()
    {
       if (xmlhttp.readyState==4 && xmlhttp.status==200)
       {

         var responseText = xmlhttp.responseText;

         div.innerHTML = responseText;
         //Use the response text to add the extra row
       }
    }
    xmlhttp.open("GET","sub_published.php",true);
    xmlhttp.send();
} else {
    //present log in/register page
    xmlhttp.onreadystatechange=function()
    {
       if (xmlhttp.readyState==4 && xmlhttp.status==200)
       {

         var responseText = xmlhttp.responseText;

         div.innerHTML = responseText;
         //Use the response text to add the extra row
       }
    }
    xmlhttp.open("GET","login.php",true);
    xmlhttp.send();
}
}

sub_published.php ページの親ページ変数にアクセスしようとしています。

4

3 に答える 3

1

次のように、すべての親ページ変数を $_SESSION 変数に格納できます。

session_start();
$_SESSION['someid']['varname']=$var;

子ページでアクセスします。

session_start();
$var=$_SESSION['someid']['varname'];

ユーザーが変数に異なる値を持つページの複数のインスタンスを開くことができるようにする場合は、someid を一意のものに設定し、それを ajax リクエストで送信する必要があります。そうしないと、静的になる可能性があります。

于 2013-06-06T11:38:32.477 に答える
0

HTML について話している場合は、window.parent.document を介して親ページの DOM ツリーにアクセスできます。PHP について話しているのであれば、それは不可能です。PHP-HTML のクライアント/サーバーの性質についてもう少し読むことをお勧めします。

于 2013-06-06T11:36:09.287 に答える