function retrieveHasilRawatJalan()
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)。如何检查错误?
答案 0 :(得分:3)
该函数是异步的(实际上是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();
}