簡體   English   中英

Javascript:如何將值傳遞給函數參數?

[英]Javascript : how to pass value into function parameter?

函數removeHasilRawatJalan()

 function retrieveHasilRawatJalan2(row, kd_klp) { var hasil_rawat_jalan2; var xhttp; if (window.XMLHttpRequest) { xhttp = new XMLHttpRequest(); } else { // code for IE6, IE5 xhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xhttp = new XMLHttpRequest(); xhttp.onreadystatechange = function() { if (xhttp.readyState == 4 && xhttp.status == 200) { hasil_rawat_jalan2 = JSON.parse(xhttp.responseText); document.getElementById("type").innerHTML = "type of : " + typeof hasil_rawat_jalan2; document.getElementById("value").innerHTML = "value of {'1' {'klp_id' : [" + hasil_rawat_jalan2[1]['klp_id'] + "]"; document.getElementById("size").innerHTML = "object size :[" + parseInt(Object.size(hasil_rawat_jalan2)) + "]"; document.getElementById("row_start").innerHTML = "start row : " + row; document.getElementById("demo").innerHTML = "content : " + hasil_rawat_jalan2; } } xhttp.open("POST", "../lab/get_row_content_from_lab_code/" + kd_klp + "", true); xhttp.send(); //start from here the code is the same. var number_of_row = parseInt(Object.size(hasil_rawat_jalan2)); addNewRow(number_of_row); } 

variable hasil_rawat_jalan2包含JSON數據,並且此變量的類型為object,

我檢查變量hasil_rawat_jalan2的類型,並使用此代碼調用數據之一

document.getElementById("type").innerHTML = "type of : " + typeof hasil_rawat_jalan2;
      document.getElementById("value").innerHTML = "value of {'1' {'klp_id' : [" + hasil_rawat_jalan2[1]['klp_id'] + "]";
      document.getElementById("size").innerHTML = "object size : [" + parseInt(Object.size(hasil_rawat_jalan2)) + "]";
      document.getElementById("row_start").innerHTML = "start row : " + row;
      document.getElementById("demo").innerHTML = "content : " + hasil_rawat_jalan2;

結果是這樣的:

類型:對象

值{'1'{'klp_id':[HL-004]

物件大小:[8]

開始行:1

內容:[對象對象]

問題是,當我將var number_of_row放到函數addNewRow()中時,它什么都不做。 但是如果我直接輸入數字就可以了
addNewRow(8)。 如何檢查錯誤?

該函數是異步的(實際上是XMLHttpRequest)。 這意味着您嘗試使用hasil_rawat_jalan2未定義,因為AJAX請求不會暫停后續程序的執行。 您需要將addNewRow移到onreadystatechange回調中,並在響應可用后調用它:

function retrieveHasilRawatJalan2(row, kd_klp) {

   var hasil_rawat_jalan2;

   var xhttp;
   if (window.XMLHttpRequest) {
     xhttp = new XMLHttpRequest();
   } else {
     // code for IE6, IE5
     xhttp = new ActiveXObject("Microsoft.XMLHTTP");
   }

   xhttp = new XMLHttpRequest();
   xhttp.onreadystatechange = function() {
     if (xhttp.readyState == 4 && xhttp.status == 200) {
       hasil_rawat_jalan2 = JSON.parse(xhttp.responseText);
       document.getElementById("type").innerHTML = "type of : " + typeof hasil_rawat_jalan2;
       document.getElementById("value").innerHTML = "value of {'1' {'klp_id' : [" + hasil_rawat_jalan2[1]['klp_id'] + "]";
       document.getElementById("size").innerHTML = "object size :[" + parseInt(Object.size(hasil_rawat_jalan2)) + "]";
       document.getElementById("row_start").innerHTML = "start row : " + row;
       document.getElementById("demo").innerHTML = "content : " + hasil_rawat_jalan2;

       // Use hasil_rawat_jalan2
       var number_of_row = parseInt(Object.size(hasil_rawat_jalan2));
       addNewRow(number_of_row);
     }
   }
   xhttp.open("POST", "../lab/get_row_content_from_lab_code/" + kd_klp + "", true);
   xhttp.send();
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM