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

正如阿卡姆注意到的那样;您忘记在字符串变量周围加上引号:

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,那么按 F12 将打开开发人员工具,与 Opera 和 Internet Explorer 中相同,尽管我个人更喜欢带有 firebug 插件的 Firefox。

于 2013-02-03T09:56:23.640 回答