Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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
Php AJAX程序不在Webstie上运行,但在本地WAMP服务器上运行良好_Php_Javascript_Ajax_Wamp_Wampserver - Fatal编程技术网

Php AJAX程序不在Webstie上运行,但在本地WAMP服务器上运行良好

Php AJAX程序不在Webstie上运行,但在本地WAMP服务器上运行良好,php,javascript,ajax,wamp,wampserver,Php,Javascript,Ajax,Wamp,Wampserver,我正在测试AJAX代码并运行本书中的示例: AJAX和PHP作者:audrahendrix;博格丹·布林扎雷;克里斯蒂安·达莉 现在有三个文件: 1) Index.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/

我正在测试AJAX代码并运行本书中的示例:

AJAX和PHP作者:audrahendrix;博格丹·布林扎雷;克里斯蒂安·达莉

现在有三个文件:

1) Index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>AJAX with PHP, 2nd Edition: Quickstart</title>
<script type="text/javascript" src="quickstart.js"></script>
</head>
<body onload='process()'>
Server wants to know your name: 
<input type="text" id="myName" />
<div id="divMessage" />
</body>
</html>

AJAX与PHP,第二版:快速入门
服务器想知道您的姓名:
2) quickstart.js

var xmlHttp = createXmlHttpRequestObject();
function createXmlHttpRequestObject() { 
var xmlHttp;
if(window.ActiveXObject)  {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
xmlHttp = false;
}
}
else
{
try {
xmlHttp = new XMLHttpRequest();
}
catch (e) {
xmlHttp = false;
}
}
if (!xmlHttp)
alert("Error creating the XMLHttpRequest object.");
else 
return xmlHttp;
}
function process(){
if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)  {
name = encodeURIComponent( 
document.getElementById("myName").value);
xmlHttp.open("GET", "quickstart.php?name=" + name, true);  
xmlHttp.onreadystatechange = handleServerResponse;
xmlHttp.send(null);
}
else
setTimeout('process()', 1000);
}
function handleServerResponse() {
if (xmlHttp.readyState == 4)   {
if (xmlHttp.status == 200)    {
xmlResponse = xmlHttp.responseXML;
xmlDocumentElement = xmlResponse.documentElement;
helloMessage = xmlDocumentElement.firstChild.data;
document.getElementById("divMessage").innerHTML = 
'<i>' + helloMessage 
+ '</i>';
setTimeout('process()', 1000);
} 
else     {
alert("There was a problem accessing the server: " + 
xmlHttp.statusText);
}
}
}
var xmlHttp=createXmlHttpRequestObject();
函数createXmlHttpRequestObject(){
var-xmlHttp;
if(window.ActiveXObject){
试一试{
xmlHttp=新的ActiveXObject(“Microsoft.xmlHttp”);
}
捕获(e){
xmlHttp=false;
}
}
其他的
{
试一试{
xmlHttp=新的XMLHttpRequest();
}
捕获(e){
xmlHttp=false;
}
}
如果(!xmlHttp)
警报(“创建XMLHttpRequest对象时出错。”);
其他的
返回xmlHttp;
}
函数过程(){
if(xmlHttp.readyState==4 | | xmlHttp.readyState==0){
名称=组件(
document.getElementById(“myName”).value);
open(“GET”,“quickstart.php?name=“+name,true”);
xmlHttp.onreadystatechange=handleServerResponse;
xmlHttp.send(空);
}
其他的
setTimeout('process()',1000);
}
函数handleServerResponse(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
xmlResponse=xmlHttp.responseXML;
xmlDocumentElement=xmlResponse.documentElement;
helloMessage=xmlDocumentElement.firstChild.data;
document.getElementById(“divMessage”).innerHTML=
''你好消息
+ '';
setTimeout('process()',1000);
} 
否则{
警报(“访问服务器时出现问题:”+
xmlHttp.statusText);
}
}
}
3) quickstart.php

<?php
header('Content-Type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
echo '<response>';
$name = $_GET['name'];
$userNames = array('YODA', 'AUDRA', 'BOGDAN', 'CRISTIAN');
if (in_array(strtoupper($name), $userNames))
echo 'Hello, master ' . htmlentities($name) . '!';
else if (trim($name) == '')
echo 'Stranger, please tell me your name!';
else
echo htmlentities($name) . ', I don\'t know you!';
echo '</response>';
?>

这是一个使用jQuery的代码端口,它将每秒轮询一次,然后将文本框中的值获取到服务器,并根据这一点使用名称填充json数组,然后如果返回的名称大于1个字符,则用消息替换divMessage div,希望它有帮助:

polling.php

<?php
if(!empty($_GET['name']) && isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest'){

    header('Content-type: application/json');

    $userNames = array('YODA', 'AUDRA', 'BOGDAN', 'CRISTIAN');

    if (in_array(strtoupper($_GET['name']), $userNames)){
        $data = array('name'=>$_GET['name']);
        echo json_encode($data);
    }else{
        echo json_encode(array('name'=>''));
    }
    die;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>AJAX Polling with jQuery & PHP (json)</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" charset="utf-8"></script>
<script>
//jQuery stuff
function poll(){
    setTimeout(function(){
        var name = $("#name").val();
        if(name.length == 0){name = 'null';}

        $.ajax({ url: "polling.php?name=" + name, cache: false,
        success: function(data){
            if(data.name.length >= 1){
                $("#divMessage").replaceWith('<div id="divMessage">Welcome '+ data.name +'!<div>');
            }else{
                $("#divMessage").replaceWith('<div id="divMessage">I Dont know you.<div>');
            }
            poll();
        }, dataType: "json"});
    }, 1000);
}
$(document).ready(function(){
    poll();
});
</script>
</head>
<body>
Server wants to know your name: <input type="text" id="name" />

<div id="divMessage"><div>
</body>
</html>

使用jQuery和PHP(json)进行AJAX轮询
//jQuery材料
函数poll(){
setTimeout(函数(){
var name=$(“#name”).val();
如果(name.length==0){name='null';}
$.ajax({url:“polling.php?name=“+name,cache:false,
成功:功能(数据){
如果(data.name.length>=1){
$(“#divMessage”).replace为('Welcome'+data.name+'!');
}否则{
$(“#divMessage”)。替换为('我不认识你');
}
poll();
},数据类型:“json”});
}, 1000);
}
$(文档).ready(函数(){
poll();
});
服务器想知道您的姓名:

这是一个使用jQuery的代码端口,它将每秒轮询并将文本框中的值获取到服务器,并根据这一点使用名称填充json数组,然后如果返回的名称大于1个字符,则用消息替换divMessage div,希望它有帮助:

polling.php

<?php
if(!empty($_GET['name']) && isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest'){

    header('Content-type: application/json');

    $userNames = array('YODA', 'AUDRA', 'BOGDAN', 'CRISTIAN');

    if (in_array(strtoupper($_GET['name']), $userNames)){
        $data = array('name'=>$_GET['name']);
        echo json_encode($data);
    }else{
        echo json_encode(array('name'=>''));
    }
    die;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>AJAX Polling with jQuery & PHP (json)</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" charset="utf-8"></script>
<script>
//jQuery stuff
function poll(){
    setTimeout(function(){
        var name = $("#name").val();
        if(name.length == 0){name = 'null';}

        $.ajax({ url: "polling.php?name=" + name, cache: false,
        success: function(data){
            if(data.name.length >= 1){
                $("#divMessage").replaceWith('<div id="divMessage">Welcome '+ data.name +'!<div>');
            }else{
                $("#divMessage").replaceWith('<div id="divMessage">I Dont know you.<div>');
            }
            poll();
        }, dataType: "json"});
    }, 1000);
}
$(document).ready(function(){
    poll();
});
</script>
</head>
<body>
Server wants to know your name: <input type="text" id="name" />

<div id="divMessage"><div>
</body>
</html>

使用jQuery和PHP(json)进行AJAX轮询
//jQuery材料
函数poll(){
setTimeout(函数(){
var name=$(“#name”).val();
如果(name.length==0){name='null';}
$.ajax({url:“polling.php?name=“+name,cache:false,
成功:功能(数据){
如果(data.name.length>=1){
$(“#divMessage”).replace为('Welcome'+data.name+'!');
}否则{
$(“#divMessage”)。替换为('我不认识你');
}
poll();
},数据类型:“json”});
}, 1000);
}
$(文档).ready(函数(){
poll();
});
服务器想知道您的姓名:

如果这是直接从书中取出的代码,您应该将书扔进垃圾箱。但是,如果相同的代码在WAMP服务器本地正常工作,那么这本书怎么可能是错的呢。我只是在努力学习。你能推荐一本更好的书吗?到底是什么原因让你这么说的?你检查过服务器给你的确切回复了吗?也许代码中存在导致XML无效的警告?@khappi:从风格上讲,代码完全是一团糟。@khappi您应该考虑在ajax中使用jquery,但最终还是会使用它。如果这是直接从书中提取的代码,您应该将书扔进垃圾箱。但是这本书怎么可能是错的,如果相同的代码在本地WAMP服务器上正常工作。我只是在努力学习。你能推荐一本更好的书吗?到底是什么原因让你这么说的?你检查过服务器给你的确切回复了吗?也许代码中存在导致XML无效的警告?@khappi:从风格上讲,代码完全是一团糟。@khappi您应该考虑在ajax中使用jquery,但最终还是会使用它。我没有权限这样做(最低声誉点)。现在就吃吧。而且做到了。:)。。。我没有这样做的权限(最低声誉点数)。现在就吃吧。而且做到了。:)。。。