如何让javascript打开php文件?

Sae*_*ost 0 javascript php ajax

该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'; 
                ?>
Run Code Online (Sandbox Code Playgroud)

photo.php

if(isset($_GET["page"])){
    echo "photo";
}
Run Code Online (Sandbox Code Playgroud)

T.J*_*der 6

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

我觉得你错过了一个=......

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

至少,这就是它的样子.看起来你正在接受一个GET参数,然后调用Photo.php并传入一个查询字符串,其中page是查询参数的名称.

附注:所有网址参数都必须正确编码.所以你也应该在encodeURIComponent那里使用:

xmlhttp.open("GET","Photo.php?page="+encodeURIComponent(opt),true);
Run Code Online (Sandbox Code Playgroud)

(从技术上讲,键和值必须是URI编码,但URI编码的版本"page"是"page",所以...)


顺便说一句,所有现代浏览器现在都有相当有用的调试工具.例如,在Chrome中,您可以打开开发者工具并查看"网络"标签,以确切了解您发送服务器的内容以及发送回的内容.对这类事情非常有用.