如何让javascript打开php文件?

时间:2013-02-03 09:01:04

标签: php javascript 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'; 
                ?>

photo.php

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

2 个答案:

答案 0 :(得分:6)

  

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

我认为你错过了= ......

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

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

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

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

(从技术上讲,密钥和值都必须进行URI编码,但"page"的URI编码版本为"page",所以......)


顺便说一句,所有现代浏览器现在都有相当有用的调试工具。例如,在Chrome中,您可以打开开发人员工具并查看“网络”标签,以查看完全您发送服务器的内容以及发送回的内容。对于这类事情非常有用。

答案 1 :(得分:0)

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

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

应该是:

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

这应该已经解决了一个可能在Firebug控制台中发现的JavaScript错误。 Firebug是一个非常方便的插件,可以解决JavaScript或网络问题。在控制台中,您可以找到带有请求和响应头以及JavaScript错误的xmlhttpreqest,如果需要查看JavaScript对象的详细信息,可以将console.log(myObject)发送到控制台,在控制台上可以单击它以显示更多详细信息。 / p>

我不确定Chrome是否具有相同的功能但是如果你没有Firefox或者像Chrome更好,那么按F12会打开开发者工具,就像在Opera和Internet Explorer中一样,尽管我个人更喜欢Firefox和firebug插件