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";
}
答案 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插件