Javascript 页面完全加载时清除Div
我使用JavaScript和Ajax调用php从数据库返回数据。调用按其应有的方式返回数据,但当页面完全加载时,Javascript 页面完全加载时清除Div,javascript,php,Javascript,Php,我使用JavaScript和Ajax调用php从数据库返回数据。调用按其应有的方式返回数据,但当页面完全加载时,标记值被清除 我需要在语法中做哪些更改,以便div标记保留php文件中的值echo?我检查了控制台,它只显示页面加载信息,与此问题无关(至少我没有看到) var-xhttp; 函数MakeQuery() { 如果(window.XMLHttpRequest){ xhttp=newXMLHttpRequest(); }如果(window.ActiveXObject){ xhttp=新的
标记值被清除
我需要在语法中做哪些更改,以便div标记保留php文件中的值echo
?我检查了控制台,它只显示页面加载信息,与此问题无关(至少我没有看到)
var-xhttp;
函数MakeQuery()
{
如果(window.XMLHttpRequest){
xhttp=newXMLHttpRequest();
}如果(window.ActiveXObject){
xhttp=新的ActiveXObject(“Microsoft.XMLHTTP”);
}
xhttp.onreadystatechange=function(){if(xhttp.readyState==4&&xhttp.status==200)
{document.getElementById(“结果”).innerHTML=xhttp.responseText;}
open(“GET”,“SQLQuery.php”,true);
xhttp.send();
}
我认为在使用AJAX之前,您需要防止实际的表单提交:
var-xhttp;
函数MakeQuery(事件){
event.preventDefault();//取消表单提交,使用AJAX
if(window.XMLHttpRequest){
xhttp=newXMLHttpRequest();
}else if(window.ActiveXObject){
xhttp=新的ActiveXObject(“Microsoft.XMLHTTP”);
}
xhttp.onreadystatechange=函数(){
如果(xhttp.readyState==4&&xhttp.status==200){
document.getElementById(“结果”).innerHTML=xhttp.responseText;
}
}
open(“GET”,“SQLQuery.php”,true);
xhttp.send();
}
我认为在使用AJAX之前,您需要防止实际的表单提交:
var-xhttp;
函数MakeQuery(事件){
event.preventDefault();//取消表单提交,使用AJAX
if(window.XMLHttpRequest){
xhttp=newXMLHttpRequest();
}else if(window.ActiveXObject){
xhttp=新的ActiveXObject(“Microsoft.XMLHTTP”);
}
xhttp.onreadystatechange=函数(){
如果(xhttp.readyState==4&&xhttp.status==200){
document.getElementById(“结果”).innerHTML=xhttp.responseText;
}
}
open(“GET”,“SQLQuery.php”,true);
xhttp.send();
}
这是因为您忽略了阻止实际表单提交(去研究如何做到这一点),因此浏览器提交表单并将服务器的响应显示为新文档。(或者,不要使用提交按钮来触发脚本功能。)我所发现的是,我可以使用按钮作为提交或重置。我不希望它是一个重置,似乎我也不希望它是一个提交。使用type=“button”@gRaWEty-这会使按钮高亮显示,好像它一直被单击一样。有没有办法在单击后将按钮返回到“正常”状态?这是因为您忽略了阻止实际表单提交(请研究如何进行),因此浏览器会提交表单并将服务器的响应显示为新文档。(或者,首先不要使用“提交”按钮触发脚本功能。)我发现我可以将该按钮用作提交或重置。我不希望它是重置,似乎我也不希望它是提交。使用type=“button”@gRaWEty-这会使按钮高亮显示,就好像它一直被单击一样。有没有办法在单击后将按钮返回到“正常”状态?这样可以工作,但也会使按钮高亮显示。有没有办法将按钮返回到“正常”状态单击后?它将一直高亮显示,直到我单击页面上的其他位置。@BellHopbyDayameTuerCodeBynigh是的,您可以像document.getElementById(“buttonid”).blur()一样模糊焦点。或者您可以传递按钮“this”上下文作为参数,在其上使用模糊。在此处阅读更多信息此操作有效,但也会使按钮高亮显示。是否有方法在单击后将按钮返回到“正常”状态?它将保持高亮显示,直到我单击页面上的其他位置。@BellHopByDayameTuerCodeBynigh是的,您可以像文档一样模糊按钮。getElementById(“buttonid”).blur()。或者您可以将按钮“this”上下文作为参数传递,并在其上使用blur。请阅读此处的详细信息
<form id="form1" method="post">
<div id="results"> </div>
<div style="padding-top: 10px;"><input type="submit" value="Submit" onclick="MakeQuery()" /></div>
<script type="text/javascript">
var xhttp;
function MakeQuery()
{
if (window.XMLHttpRequest) {
xhttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.onreadystatechange = function(){ if (xhttp.readyState == 4 && xhttp.status==200)
{ document.getElementById("results").innerHTML = xhttp.responseText; } }
xhttp.open("GET", "SQLQuery.php", true);
xhttp.send();
}
</script>
</form>