0

我无法让我的简单 ajax 脚本运行。代码应该很简单。ajax脚本是:

<html>

<head><title>Testing ajax</title>

    <script type="text/javascript">

        function ajax() {

            var xmlhttp;

            var fname=document.getElementById("fname").value;

            if(window.XMLHttpRequest) {
                xmlhttp=new XMLHttpRequest();
            } else {
                xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }

            xmlhttp.onreadystatechange=function() {

                if (xmlhttp.readyState==4 && xmlhttp.status==200) {

                    document.getElementById("output").innerHTML=xmlhttp.responseText;

                }

            }

            xmlhttp.open("GET","ajax.php?fname="+fname,true);
            xmlhttp.send();

        }

    </script>

</head>

<body>


    <form>

        <input type="text" id="fname">

        <input type="text" id="lname">

        <input type="submit" id="submit" onclick="ajax()">


    </form>


    <div id="output"></div>


</body>

php脚本是:

<?php

$fname=$_GET['fname'];

echo "<p>Hello ".$fname."</p>";

?>

我也试过:

xmlhttp.open("POST","ajax.php",true);
xmlhttp.setRequestHeader("Content-type","application/pass-data");
xmlhttp.send("fname="+fname);

我无法获得既不发布也不获得发送数据的方法。我没有看到简单的东西吗?

4

2 回答 2

3

它不起作用的原因是您在<form>标签内有输入。删除表单标签后,当我尝试将<input type="submit" />控件更改为您的代码时

<input type="button" onClick="ajax()" value="Submit" />

它就像一个魅力。我怀疑由于提交时的某些好处、安全问题等,表单行为的处理方式有所不同。

于 2012-06-03T04:47:40.343 回答
0

将输入类型从提交更改为按钮

输入类型="按钮" onclick=...

因为当您单击按钮时,如果 type="submit",它将立即提交页面。

于 2012-06-03T04:44:58.870 回答