가 여기 내 자바 스크립트 기능입니다 표시되지 : -XMLHttpRequest의 출력이
해결 자바 스크립트 기능 : - 여기
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-request의 출력으로 업데이트되지 않습니다. 사용자가 마지막으로 클릭 한 버튼 만 http-request의 출력을받습니다.
PHP 스크립트에는 아무런 문제가 없습니다. 방금 참고할 수 있습니다. delfile 스크립트는 "File Delted"를 전송합니다.
@torazaburo가 제안한대로 지역 변수를 사용하여 해결했습니다.
MS 크래프트를 제거하십시오. IE6 이하에만 적용됩니다. 다른 XMLHttpRequest 상용구도 제거 할 수 있습니다. 우리는 어떻게 작동하는지 알고 있습니다. 그냥 호기심에서 8 살짜리 책을 복사 해 봤어? –
IE 6에서 작동하므로 제거 할 수 없습니다. –
IE6 점유율은 모든 선진국에서 1 % 미만입니다. https://www.modern.ie/en-us/ie6countdown을 참조하십시오. MS가 XP 지원을 중단하면 곧 0으로 떨어집니다. 그것을 유지하기를 원하는지 여부는 당신에게 달려 있지만, 코드 샘플을 이와 같이 관련없는 세부 사항으로 막지 마십시오. –