我有一個頁面,我想顯示幾個MySQL表。
右側有一張表格,只有在選擇了不同的人時纔會更改。
第二張桌是中心的主桌。我有一個包含每個人的下拉框。所選人的結果顯示在中間表中。每個人都有多個結果,因此有第二個下拉框可以選擇要顯示的結果中的哪一個。這是通過Ajax XMLHTTP請求完成的。Ajax請求與Javascript
問題是右表使用了一些javascript。我知道Ajax和XMLHTTP請求相結合是不可能的。但沒有javascript我不能做我想要的。有沒有辦法,在javascript完成他的工作後顯示正確的表格?
我現在使用框架。這不是很好。因爲我必須將兩個頁面放在一起看起來很漂亮,而且這並不像說的那麼容易。但這種方式正在做我想做的事情。
於是我在網上搜索(時間長),只需幾分鐘之前,我想放棄,我發現這段代碼(從http://www.javascriptkit.com/dhtmltutors/ajaxincludes.shtml推出):
function HttpRequest(url){
var pageRequest = false //variable to hold ajax object
/*@cc_on
@if (@_jscript_version >= 5)
try {
pageRequest = new ActiveXObject("Msxml2.XMLHTTP")
}
catch (e){
try {
pageRequest = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e2){
pageRequest = false
}
}
@end
@*/
if (!pageRequest && typeof XMLHttpRequest != 'undefined')
pageRequest = new XMLHttpRequest()
if (pageRequest){ //if pageRequest is not false
pageRequest.open('GET', url, false) //get page synchronously
pageRequest.send(null)
embedpage(pageRequest)
}
}
function embedpage(request){
//if viewing page offline or the document was successfully retrieved online (status code=2000)
if (window.location.href.indexOf("http")==-1 || request.status==200)
document.write(request.responseText)
}
}
HttpRequest("external.htm") //include "external.htm" onto current page
此代碼工作完全.. 。 第一次。只要你改變了這個人,整個頁面就消失了,只有桌子出現了,而Firefox繼續「加載」頁面(你看到那個圈子正在旋轉)。我知道如何編輯上面的代碼以適應我的需求,但我對Ajax沒有任何理解或者如何解決這個問題。希望有人能幫助我,給我一個很好的解決方案!並告訴我爲什麼上面的代碼不能正常工作?
在此先感謝!
Milaan
那麼這是一個我從互聯網上使用的例子,我認爲我的版本包括一些變量沒有任何區別。 我知道jQuery,但更好嗎?它更容易嗎? 我知道它的一些基礎知識,所以我將不得不學習一切(包括Ajax?)。 – Milaan 2011-01-25 18:28:04
@Milaan,我認爲擺脫框架(帶或不帶jQuery)是一件好事,您可以使用最基本的ajax請求將您的PHP腳本的輸出直接放在需要的地方,使用`.load() `:http://api.jquery.com/load/ – jeroen 2011-01-25 18:35:13
謝謝jeroen!這確實是比我的框架更好的方式(我從來沒有使用過它們,但它似乎是唯一的解決方案)。 我應該用jQuery做中間表嗎? 如果我這樣做可能會更好,對吧? – Milaan 2011-01-25 18:41:06