0

ajax に関する w3school のチュートリアルをいくつか読みました。サーバーがクライアントからメッセージを自動的に受信する方法を想定しています。2 つのページがあり、1 つはクライアント用、もう 1 つはサーバー用です。誰かが何かを入力して送信をクリックすると、サーバーページが自動的に画面に追加されます。これは私が使用するものです:

client:
<script>
$(function(){
$("#submit").click(function(){
$.post("server.html", $("#f1").value()+"&&"+$("#f2").value(), function(){
alert("send!");
});
});
});
</script>
<input type="number" name="f1" id="f1" placeholder="first number..." />
<input type="number" name="f2" id="f2" placeholder="second number..." />
<input type="submit" id="submit" value="submit" />

server:
$(function(){
$("#pmsg").hide();
$("#msg").load("client.html", function(){
$("#pmsg").show().delay(1000).hide();
});

});
<div id="pmsg">new message</div>
<div id="msg"></div>

欲しい結果が得られないのですが、どなたか修正方法を教えていただけないでしょうか? どうも!

問題を解決しました。php を使用してメッセージを txt ファイルに書き込み、$.get を使用してそのファイルからメッセージを取得します。

4

1 に答える 1

0

基本的に、jQuery liberary とその load 関数を使用して ajax 作業を行っています。実際には次のように動作します。ブラウザごとに http オブジェクトを作成し (IE の場合は activexobject、FF の場合は xmlhttprequest)、サーバー サイトと呼ばれる URL に要求を送信します。次の 4 つの状態があります。

0: request not initialized
1: server connection established
2: request received
3: processing request
4: request finished and response is ready 

以下はコードです:

var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();
于 2013-06-17T10:57:00.367 に答える