我想學習一些結合的PHP,JavaScript,SQL,HTML的東西... 我創建了一些工作,完美地在Firefox(WinXP和Android版本)。 所需的操作是,每當我按一下按鈕「的過程!」,一個PHP腳本採用文本在「文本區域」,把每一個字到一個數據庫和吐回一些HTML ...onreadystatechange觸發器重新加載頁面
<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腳本的迴應是這樣的:
search: <input type="text" id="textfield" onkeyup="ajaxUpdate()" />
<div id="ajaxoutput"></div>
我把事情「Ajax」的,我不知道任何如果這是阿賈克斯應該是。但我這樣稱呼它,因爲它應該在每個關鍵事件中發送關於textfield
的字符串。據我瞭解,感覺有點阿賈克斯。儘管如此,這種方法在firefox上運行得非常好,正如我所說的,但是當我在其他瀏覽器上嘗試時,沒有任何反應。所發生的一切似乎是,頁面重新加載帶有附加?
在地址欄中的URL ...
我可以問我的朋友們只使用Firefox,但我很好奇,是什麼原因造成這一點。我哪裏出錯了。
謝謝!
編輯! 我在Chrome的調試器中做了一些挖掘。原來的迴應沒有問題。當我設置斷點時,我發現div被新內容填充。但是,回調函數會連續調用兩次。完成後,我恢復到以前的內容,服務器響應無處可尋。發生什麼事?
您正在嘗試使用哪個「*其他瀏覽器*」?什麼版本? ['string.trim()'](HTTPS://developer.mozilla。org/en-US/docs/JavaScript/Reference/Global_Objects/String/Trim)是一種相對較新的方法,無法在任何地方使用:[compatibility](http://kangax.github.com/es5-compat-table/ #String.prototype.trim)。另外,請檢查您的瀏覽器的開發工具。大多數現在都內置了它們,並允許在發生異常時暫停。 – 2013-03-26 23:12:32
對不起,現在,IE8,Chome桌面winxp和android,Opera for Android,Firefox 19 for WinXP和android版本,HTC oneX瀏覽器,Iphone瀏覽器和Linux的Midori瀏覽器。只有兩個Firefox版本做我想要的... – mickey 2013-03-26 23:22:50
另外,刪除'trim()'什麼也沒做。 – mickey 2013-03-26 23:27:42