使用javascript来显示php回应的消息

时间:2015-02-19 17:41:42

标签: javascript jquery

我正在使用以下函数在我的HTML页面上显示消息,即文件已成功上传。问题是,当我上传多个文件时,它只显示已上传的最后一个文件的消息,而不是我要显示已上传的所有文件的消息。我试过这样的东西,但没有工作。

    function completeHandler(event){
      var prevstatus = "";
      $id("status").innerHTML = event.target.responseText + prevstatus;
      prevstatus = $id("status").innerHTML;
      $id("progressBar").value = 0;
      $id("progressBar").style.visibility = 'hidden';
    }

似乎无法使用

   $id("status").innerHTML += event.target.responseText;

调用completeHandler()的函数是:

   function UploadFile(file){
    $id("progressBar").style.visibility = 'visible';
    var xhr = new XMLHttpRequest();
    xhr.upload.addEventListener("progress", progressHandler, false);
    xhr.addEventListener("load", completeHandler, false);
    xhr.addEventListener("error", errorHandler, false);
    xhr.addEventListener("abort", abortHandler, false);
    //start upload
    xhr.open("POST", $id("upload").action, true);
    xhr.setRequestHeader("X_FILENAME" , file.name);
    xhr.send(file);

}

此功能也使用div状态字段

  function progressHandler(event){
    var percent = (event.loaded / event.total) * 100;
    $id("progressBar").value = Math.round(percent);
    $id("status").innerHTML = Math.round(percent)+"% uploaded... please wait";
}

3 个答案:

答案 0 :(得分:0)

我认为prevstatus没有做任何事情。并附加到innerHTML使用+=,如:

尝试

function completeHandler(event){
      $id("status").innerHTML += event.target.responseText;
      $id("progressBar").value = 0;
      $id("progressBar").style.visibility = 'hidden';
    }

答案 1 :(得分:0)

每次使用空字符串调用函数时,您都会初始化var prevstatus

尝试用这个替换innerHTML调用以附加新消息:

$id("status").innerHTML += event.target.responseText;

或者在添加新消息之前,您可以使用以下行:

$id("status").innerHTML = event.target.responseText + $id("status").innerHTML;

答案 2 :(得分:0)

好的我修好了

  var prevstatus = ""; 

作为全局变量和函数

function completeHandler(event){
    $id("status").innerHTML = event.target.responseText + prevstatus;
    prevstatus = $id("status").innerHTML;
    $id("progressBar").value = 0;
    $id("progressBar").style.visibility = 'hidden';
}