Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让javascript打开php文件?_Php_Javascript_Ajax - Fatal编程技术网

如何让javascript打开php文件?

如何让javascript打开php文件?,php,javascript,ajax,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 XML

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'; 
                ?>
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编码的,但是
“page”
的URI编码版本是
“page”
,所以…)


顺便说一下,现在所有的现代浏览器都有相当有用的调试工具。例如,在Chrome中,您可以打开开发者工具并查看“网络”选项卡,以准确查看您向服务器发送的内容以及它向服务器发送的内容。对这类事情非常有用

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编码的,但是
“page”
的URI编码版本是
“page”
,所以…)



顺便说一下,现在所有的现代浏览器都有相当有用的调试工具。例如,在Chrome中,您可以打开开发者工具并查看“网络”选项卡,以准确查看您向服务器发送的内容以及它向服务器发送的内容。对这类事情非常有用。

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

var opt = <?php echo $_GET['page'];?>
var opt=
应该是:

var opt = '<?php echo $_GET['page'];?>';
var opt='';
这应该是一个JavaScript错误,可能在Firebug的控制台中被注意到。Firebug是解决JavaScript或网络问题的非常方便的插件。在控制台中,您可以找到带有请求和响应头以及JavaScript错误的XMLHttpRequest,如果需要查看JavaScript对象的详细信息,您可以将console.log(myObject)添加到控制台中,单击该控制台可以显示更多详细信息


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

正如Akam所注意到的;您忘记在字符串变量周围加引号:

var opt = <?php echo $_GET['page'];?>
var opt=
应该是:

var opt = '<?php echo $_GET['page'];?>';
var opt='';
这应该是一个JavaScript错误,可能在Firebug的控制台中被注意到。Firebug是解决JavaScript或网络问题的非常方便的插件。在控制台中,您可以找到带有请求和响应头以及JavaScript错误的XMLHttpRequest,如果需要查看JavaScript对象的详细信息,您可以将console.log(myObject)添加到控制台中,单击该控制台可以显示更多详细信息


我不确定chrome是否具有相同的功能,但如果您没有Firefox或更喜欢chrome,则按F12键将打开开发工具,与Opera和Internet explorer中的开发工具相同,尽管我个人更喜欢带有firebug插件的Firefox。

var opt='';不要直接将用户输入回显到页面。它使你容易受到攻击!如果您有PHP生成JavaScript/HTML并且“它不工作”。然后在浏览器中查看源代码。确定问题是客户端代码没有达到您预期的效果(在这种情况下,请不要向我们展示PHP代码),还是PHP没有生成您预期的客户端代码。请求是否失败或只是空白?这与TJ的答案有关。然后试着安装firebug,看看你在控制台中得到了什么。这可能是一个语法错误。您的帖子仍然显示var opt=而不是var opt=''var opt='';不要直接将用户输入回显到页面。它使你容易受到攻击!如果您有PHP生成JavaScript/HTML并且“它不工作”。然后在浏览器中查看源代码。确定问题是客户端代码没有达到您预期的效果(在这种情况下,请不要向我们展示PHP代码),还是PHP没有生成您预期的客户端代码。请求是否失败或只是空白?这与TJ的答案有关。然后试着安装firebug,看看你在控制台中得到了什么。这可能是一个语法错误。你的帖子仍然显示var opt=而不是var opt='''@我做的两件事仍然一样problem@SaeedPirdost:嗯,您确实需要
=
,但显然还有其他问题。唯一的问题是调试它(请看几分钟前我在答案末尾添加的注释)。@SaeedPirdost:再次:“…显然还有其他问题…”和“唯一的问题是调试它…”我都做了同样的事情problem@SaeedPirdost:嗯,你确实需要
=
,但显然还有其他问题。唯一的问题是调试它(请看几分钟前我在答案末尾添加的注释)。@SaeedPirdost:再次:“…显然还有其他问题…”和“唯一的问题是调试它…”