1

フォームで ajax を使用するためのさまざまな説明を調べ、プログラム全体を削除して、フォームが php と対話するようにしましたが、それは不当に頑固です...

フォーム:

<form method="get" action="">
Name:<input type="text" name="uname" id="uname"><br>';
<input type="submit" onclick="addcomment()" value="Post">
</form> 
<a href="" onclick="addcomment()">Test</a>

ジャバスクリプト:

function addcomment()
    {

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

            xmlhttp.onreadystatechange=function()
            {
                if (xmlhttp.readyState==4 && xmlhttp.status==200)
                {
                    document.write(xmlhttp.responseText);
                    }
                   }
        xmlhttp.open("GET","test.php",true);
        xmlhttp.send();
    }

PHP:

<?php
echo 'test';
?>

情報を渡さず、画面全体に 'test' とだけ書き込む必要がありますが、代わりに .html を追加して html ページをリロードします'get' information(test.html?uname=)。これは、フォームを試した後に(つまり、'get'ページ名に情報を追加して)試しない限り、アンカータグからうまく機能します。私は基本的な何かが欠けていると確信しています。手伝って頂けますか?

ありがとうございました。

PS私はjqueryを使用できません。

4

2 に答える 2

1

フォームを投稿するデフォルトのアクションを実行しないようにブラウザーに指示するには、コメント追加機能から false を返す必要があります。現時点で起こっていることは、ブラウザが関数を実行し、すぐにフォームを送信して、xmlhttprequest を実行する時間がないことです。

于 2013-07-11T08:30:02.950 に答える
1

ブラウザがフォームをページに送信できないようにする必要があります。これはreturning falseスクリプトによって行われます。例:

<form method="get" action="" onsubmit="addcomment(); return false;">
    Name: <input type="text" name="uname" id="uname"><br>
    <input type="submit" value="Post" />
</form> 
于 2013-07-11T08:30:17.107 に答える