3

这是我的代码: HTML:

<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript" src="foodstore.js"></script>
    </head>
    <body onLoad="process()">
        <h3>WELCOME to our online food store</h3>
        Please type what you want to order:
        <input type="text" id="userinput" ></input>
        <div id="underInput"></div>
    </body>
</html>

PHP

 <?php
header('Content-Type: text/xml');
echo"<?xml version='1.0' encoding='UTF-8' standalone='yes'?>";
echo '<response>';
            $food = $_GET['food'];
            $foodArray = array('tuna','bacon','beef','loaf','mutton');
            if(in_array($food,$foodArray))
                echo 'We do have'.' '.$food;
            elseif($food=='')
                echo 'type something dude!';
            else
                echo 'Sorry we dont sell'.' '.$food;
echo '</response>';
?>

JS

var xmlHttp = createXmlHttpRequestObject();

function createXmlHttpRequestObject()
    {
        var xmlHttp;

        if(window.ActiveXObject)
            {
                try
                    {
                        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                    }
                catch(e)
                    {
                        xmlHttp = false;
                    }
            }
        else if(window.XMLHttpRequest) 
            {
                try
                    {
                        xmlHttp = new XMLHttpRequest();
                    }
                catch(e)
                    {
                        xmlHttp = false;
                    }
            }

        if(!xmlHttp)
            {
                alert('cannot connect to database!');
            }
        else
            {
                return xmlHttp;
            }
    }

function process()
    {
        if(xmlHttp.readyState == 0 || xmlHttp.readyState == 4)
            {
                food = encodeURIComponent(document.getElementById("userinput").value);
                xmlHttp.open("GET", "ajax.php?food=" + food, true);
                xmlHttp.onreadystatechange = handleServerResponse;
                xmlHttp.send(null);
            }
        else
            {
                setTimeOut('process()',1000);
            }
    }


function handleServerResponse()
    {
        if(xmlHttp.readyState == 4)
            {
                if(xmlHttp.status==200)
                    {
                        xmlResponse = xmlHttp.responseXML;
                        xmlDocumnetElement = xmlResponse.documentElement;
                        message = xmlDocumentElement.firstChild.data;
                        document.getElementById("underInput").innerHtml = "<span style='color:blue'" + message + "</span>";
                        setTimeOut('process()',1000);
                    }
            }
        else
            {
                alert('something went wrong');
            }
    }

对我来说一切似乎都很好,但我仍然不断收到错误“未定义 xmlDocumentElement”。由于javascript和php中的一些解析问题,这似乎是一个错误。请帮我解决这个错误。谢谢

4

1 回答 1

0

尝试使用

window.setTimeOut('process', 1000);
于 2013-05-02T12:37:31.150 回答