XMLHttpRequest输出未显示
XMLHttpRequest output not shown
这是我的JavaScript函数:-
已解决的JavaScript函数:-
function delfile(fileid) {
var div = "fileid_" + fileid;
var location = "/delfile/" + fileid;
if (window.XMLHttpRequest)
{
var xmlhttp=new XMLHttpRequest();
}
else
{
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById(div).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST", location, true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send("");
}
以下是我从PHP生成的内容:-
echo "<td><div id='fileid_{$id}'><button onclick='delfile({$id})'>Delete File</button></div></td>";
我的问题是,当用户同时点击2-3个链接时,http请求会通过javascript发送,服务器上的文件会被删除,但div id不会随着http请求的输出而更新。只有用户上次单击的按钮才能获得http请求的输出。
PHP脚本绝对没有问题,我只是把它作为参考。delfile脚本只发送"File Delted"。
使用@torazaburo建议的局部变量求解。
您未能将xmlhttp
声明为函数的本地,这意味着它在多个请求之间共享,这会导致灾难。
在进行此操作时,还请声明函数的$div
和$location
是本地的。此外,请删除这些变量名称的$
前缀,因为这种做法会腐蚀大脑。
如果你在函数的顶部放了一个"use strict;",那么你声明变量的失败就会被发现。
相关文章:
- 从一个文本框执行代码,并在另一个文本框中以 HTML 显示输出
- 在命令运行时以Grunt显示输出
- 输入富文本以显示输出
- AJAX 不显示输出
- 使用 PHP 在同一页面中显示输出
- 'href'单击时不显示输出
- AngularJS问题未显示输出
- 可以't让localStorage在刷新时显示输出
- 如何在不刷新、显示输出、重新加载表单、冲洗和重复的情况下提交表单
- 此程序不显示输出
- 无法使用 javascript 中的函数在边框中显示输出
- 如何从excel文件中输入,并在速度计上显示输出
- 如何将两个日期之间的固定值更改为变量,并使用事件处理程序Javascript显示输出
- 显示输出计算的Javascript
- 无法用Jquery在Chrome控制台显示输出
- 在选择单选按钮后,如何根据所选的单选按钮显示输出
- jQuery AJAX在第一个PHP条件之后不显示输出
- Javascript只显示输出中的前4个字符
- console.log在Chrome浏览器中没有显示输出
- 为什么静态变量不显示输出