PHP、JavaScript、SQL、HTML などを組み合わせて学習しようとしています... firefox (WinXP と Android の両方のバージョン) で問題なく動作するものを作成しました。望ましいアクションは、「処理!」ボタンをクリックするたびに、php スクリプトが「テキストエリア」内のテキストを取得し、各単語をデータベースに入れ、HTML を吐き出すことです...
<html>
<head>
<link rel="stylesheet" type="text/css" href="somestyle.css">
</head>
<body>
<script>
function ajaxUpdate()
{
var currStr = document.getElementById("textfield").value;
document.getElementById("textfield").value = currStr.trim();
var response;
try{
var httpReq = new XMLHttpRequest();
}
catch(error){
document.write(error);
}
httpReq.open("POST", "ajaxinput.php", true);
httpReq.send(currStr);
httpReq.onreadystatechange = function() {
if(httpReq.readyState == 4){
response = httpReq.responseText;
document.getElementById("ajaxoutput").innerHTML = response;
}
}
}
function processText(){
//document.write("in processURL");
url = document.getElementById("textarea").value;
document.getElementById("m_block").innerHTML = document.getElementById("m_block").innerHTML + "<br/>text is being worked on by server..."
var response;
try{
var httpReq = new XMLHttpRequest();
}
catch(error){
document.write(error);
}
httpReq.open("POST", "textinput.php", true);
httpReq.send(document.getElementById("textarea").innerHTML);
httpReq.onreadystatechange = function() {
if(httpReq.readyState == 4){
response = httpReq.responseText;
document.getElementById("m_block").innerHTML = response;
}
}
}
</script>
<div id="container">
<div id="l_block"></div>
<div id="m_block">
<form>
<br/>
<textarea id="textarea" rows="10" cols="42">Insert text here!</textarea>
<button onclick="processText()">process!</button>
</form>
</div>
<div id="r1_block">css 2</div>
<div id="r2_block">css 1</div>
</div>
</body>
</html>
php-script からの応答は次のようになります。
search: <input type="text" id="textfield" onkeyup="ajaxUpdate()" />
<div id="ajaxoutput"></div>
私は物事を「ajax」と呼んでいますが、これがajaxであるべきかどうかはまったくわかりません。しかし、textfield
各キーアップ イベントで文字列を送信することになっているため、これと呼んでいます。私が理解している限り、少しアヤックスを感じました。
それにもかかわらず、これは私が言ったようにfirefoxで非常にうまく機能しますが、他のブラウザで試しても何も起こりません. ?
アドレスバーのURLに追加されたページがリロードされるだけのようです...
友達全員に Firefox を使うように頼むこともできますが、何が原因なのか知りたいです。どこが間違っていますか。
ありがとう!
編集! Chromeのデバッガーで掘り下げました。応答が正常に返されることが判明しました。ブレークポイントを設定すると、div に新しいコンテンツが取り込まれることがわかります。ただし、コールバック関数は 2 回続けて呼び出されます。終了後、以前のコンテンツに戻りますが、サーバーの応答はどこにもありません。何が起こっている?