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

入力タイプを送信からボタンに変更します

input type = "button" onclick=..。

ボタンをクリックすると、type = "submit"の場合、すぐにページが送信されるためです。

于 2012-06-03T04:44:58.870 に答える