简体   繁体   English

Javascript:如何将值传递给函数参数?

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

function retrieveHasilRawatJalan() 函数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 contain JSON data and type of this variable is object, variable hasil_rawat_jalan2包含JSON数据,并且此变量的类型为object,

i check type of variable hasil_rawat_jalan2, and call one of the data using this code 我检查变量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;

the result is this: 结果是这样的:

type of : object 类型:对象

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

object size :[8] 物件大小:[8]

start row : 1 开始行:1

content : [object Object] 内容:[对象对象]

the problem is when i put var number_of_row in function addNewRow() it doesnt do anything. 问题是,当我将var number_of_row放到函数addNewRow()中时,它什么都不做。 but it work if i put number directly like this 但是如果我直接输入数字就可以了
addNewRow(8). addNewRow(8)。 how to check the error? 如何检查错误?

The function is asynchronous (XMLHttpRequest is, actually). 该函数是异步的(实际上是XMLHttpRequest)。 It means that hasil_rawat_jalan2 is not yet defined when you try to use it, because AJAX request doesn't pause subsequent program execution. 这意味着您尝试使用hasil_rawat_jalan2未定义,因为AJAX请求不会暂停后续程序的执行。 You need to move addNewRow into onreadystatechange callback and call it once response has become available: 您需要将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