duanjinchi1982 2013-12-30 04:32
浏览 27
已采纳

第一个带有ajax的小型食品商店项目 - 没有执行

I have just started to learn Ajax and have watched a tutorial on how to write a small input that checks whether a foodstore has something in stock or whether it hasn't.

I have double-checked the code several times but it still does not execute anything. I would be glad if anyone could help me here.

The code is basically three files:

Index.html

<!DOCTYPE html>

<html>

<head>

<script type="text/javascript" src="foodstore.js"></script>

</head>

<body onload="process()">

<h3>The Food Store</h3>

<p>Enter the food you would like to have:</p>
<input type="text" id="userInput">
<div id="underInput"/>

</body>

</html>

foodstore.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', 'ham');
if(in_array($food,$foodArray)) {
    echo 'We do have '.$food'!';
echo '</response>';
}
}


?>

and finally the foodstore.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("Cant create that object!");

        else {
            return xmlHttp;
        }
    }

    // This is now the communication part!

    function process() {
        if(xmlHttp.readyState==0 || xmlHttp.readyState==4){
            food =          encodeURIComponent(document.getElmentById("userInput").value);
            xmlHttp.open("GET", "foodstore.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;
                xmlDocumentElement = xmlResponse.documentElement;
                message = xmlDocumentElement.firstChild.data;
                document.getElementById("underInput").innerHTML = '<span styel="color:blue">' + message + '</span>';
                setTimeout('process()',1000);
            }else{
                alter('Something went wrong!');
            }
        }

    }

I would really appreciate some help. I also read in the youtube-comments that jQuery would rather be easier to use as far as the js part goes. Is that true?

Many thanks!

  • 写回答

2条回答 默认 最新

  • duanlan5320 2013-12-30 04:45
    关注

    yes its true jquery is very easy check here jquery official site

    basic from w3schools

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算