如何使用AJAX将信息发送到PHP脚本?

时间:2012-06-03 04:03:42

标签: php javascript ajax post get

我无法运行简单的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);

我既不能得到post也没有get方法来发送数据。我没有看到简单的事情吗?

2 个答案:

答案 0 :(得分:3)

它无法正常工作的原因是您的输入位于<form>标记内。删除表单标记后,当我尝试将<input type="submit" />控件更改为

时的代码
<input type="button" onClick="ajax()" value="Submit" />

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

答案 1 :(得分:0)

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

输入类型=“按钮”onclick = ...

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