2015-09-05 30 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