0

Photo.phpファイルにはメッセージが表示されるはずです。

しかし、?page=2アドレスに追加すると、ファイルを開くために Photos 関数が呼び出されませんPhoto.php

function Photos() {
            var opt = <?php echo $_GET['page'];?>
            alert(opt);
            if(window.XMLHttpRequest)
            {
                xmlhttp = new XMLHttpRequest();
            }
            else
            {
                xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange=function()
            {
                if(xmlhttp.readyState==4 && xmlhttp.status==200)
                {
                    document.getElementById("Results").innerHTML = xmlhttp.responseText;
                }
            }
            xmlhttp.open("GET","Photo.php?page="+opt,true);
            xmlhttp.send();
        }
            function showCat(option){
                 ....
           }


<?php 
                   if(isset($_GET['page'])){
            echo '<script type="text/javascript">'
            ,'myPhotos();'
            , '</script>';
        }
                echo 'Results go here'; 
                ?>

写真.php

if(isset($_GET["page"])){
    echo "photo";
}
4

2 に答える 2

6

xmlhttp.open("GET","Photo.php?page"+opt,true);

私はあなたが=そこに欠けていると思います...

xmlhttp.open("GET","Photo.php?page="+opt,true);
// Here --------------------------^

少なくとも、それはそれがどのように見えるかです。引数を受け入れてから、クエリパラメータの名前であるクエリ文字列をGET呼び出しPhoto.phpて渡すようです。page

補足:すべてのURLパラメータは正しくエンコードされている必要があります。encodeURIComponentしたがって、そこでも使用する必要があります。

xmlhttp.open("GET","Photo.php?page="+encodeURIComponent(opt),true);

(技術的には、キーと値の両方をURIエンコードする必要がありますが、のURIエンコードバージョン"page""page"、です...)


ちなみに、最近のすべてのブラウザには、かなり便利なデバッグツールがあります。たとえば、Chromeでは、開発ツールを開き、[ネットワーク]タブを見て、サーバーに送信しているものとサーバーが返送しているものを正確に確認できます。この種のものに非常に役立ちます。

于 2013-02-03T09:04:44.303 に答える
0

Akamが気づいたように; 文字列変数を引用符で囲むのを忘れました:

var opt = <?php echo $_GET['page'];?>

する必要があります:

var opt = '<?php echo $_GET['page'];?>';

これにより、Firebugのコンソールで認識された可能性のあるJavaScriptエラーが発生するはずです。Firebugは、JavaScriptやネットワークの問題を解決するための非常に便利なプラグインです。コンソールでは、リクエストヘッダーとレスポンスヘッダー、およびJavaScriptエラーを含むxmlhttpreqestを見つけることができます。また、JavaScriptオブジェクトの詳細を表示する必要がある場合は、コンソールにconsole.log(myObject)をクリックして、詳細を表示できます。

Chromeに同じ機能があるかどうかはわかりませんが、Firefoxがない場合、またはChromeと同じように優れている場合は、Firebugプラグインを備えたFirefoxが個人的に好きですが、F12キーを押すとOperaやInternetExplorerと同じ開発ツールが開きます。

于 2013-02-03T09:56:23.640 に答える