2015-09-05 53 views
2

感謝給了我在這裏的幫助下,我有一段JavaScript是切換從一個PHP文件一個div並加載內容的可見性是切換DIV:Javascript的調用PHP內容

function compare_toggle_visibility(id, line, collection) 
{ 
    var e = document.getElementById(id); 
    e.style.display = ((e.style.display!='none') ? 'none' : 'block');    
    $(e).load('http:/www.minorworksoflydgate.net/XML/XQuery/test_command_line.php'+ '?collection=' + collection + '&zone=' + id + '&line=' + line, function(responseTxt, statusTxt, xhr){ 
    if(statusTxt == "success") 
     alert("External content loaded successfully!"); 
    if(statusTxt == "error") 
     alert("Error: " + xhr.status + ": " + xhr.statusText); 
}); 
} 

這很適合用於測試的小php文件,但是我遇到的問題是我的實際生產文件需要一些時間才能加載。因此,在代碼可以加載到div之前,div會切換並存在。我收到了一條警告消息,表明外部內容已加載,但我沒有看到div本身。

爲了解決這個問題,我試圖在加載函數之後放置切換鍵,但這沒什麼區別。我也嘗試將php調用的結果加載到變量中,然後在加載成功時將該變量的結果調用到div中,但這也不起作用。

function compare_toggle_visibility(id, line, collection) 
{ 
    var e = document.getElementById(id); 
    e.style.display = ((e.style.display!='none') ? 'none' : 'block'); 
    var l = load('http:/www.minorworksoflydgate.net/XML/XQuery/test_command_line.php'+ '?collection=' + collection + '&zone=' + id + '&line=' + line, function(responseTxt, statusTxt, xhr){ 
    if(statusTxt == "success") 
     $(e).html(l); 
    if(statusTxt == "error") 
     alert("Error: " + xhr.status + ": " + xhr.statusText); 
}); 
} 

我不知道我要去哪裏錯了 - 我是用PHP和XML很舒服,而且沒有那麼用JavaScript,尤其是使用Ajax和jQuery。

回答

1

試試這個

function compare_toggle_visibility(id, line, collection){ var e = document.getElementById(id); 
e.style.display = ((e.style.display!='none') ? 'none' : 'block'); 
    $.get('http:/www.minorworksoflydgate.net/XML/XQuery/test_command_line.php'+ '?collection=' + collection + '&zone=' + id + '&line=' + line, function(responseTxt){ 
    $(e).html(responseTxt); 
}); 
} 
+0

這真是奇怪 - 工作正常上一個完全普通的HTML文件,但不能在我的生產現場,而其他人做。或許,我可能沒有給它足夠的時間來加載。我要切換它,去做一些其他的事情,當我回來時看看它是否被加載。 – medievalmatt

+0

是的,還有另一個bug。我添加了一些顯示「正在加載...」之前切換,並顯示,但代碼不會完成加載時。這可能是生產網站上某種CSS的東西。我要標記這個正確的答案,因爲它絕對解決了我最初的JavaScript問題。 – medievalmatt

+0

好的謝謝。祝一切順利 – Ahmadbaba46