我在后端使用perl模块和cgi scrips,在前端使用prototypejs。我基本上使用ajax来调用在服务器上运行的cgi脚本,该脚本调用另一个文件将发送的数据放入oracle db。
fronend脚本是:
new Ajax.Request ('ajax-sr-update.cgi', {
method: 'post',
asynchronous: 'false',
parameters: {
incident_id: incident_id,
serial_number: $F('serial_number'),
cmd: 'Add Serial'
},
onSuccess: function(transport) {
var json = transport.responseJSON();
if (json) {
if (json.error_message) {
//display error message
}
else if (json.incident_id) {
//append the output in an alredy displated table
var new_row = '<tr id="alt-row-'+json.line_number+'">';
new_row += '<td id="serial_number-'+json.incident_id+'" style="border-left: solid 1px #eeeeee;">'+json.serial_number+'</td>';
new_row += '<td id="product_number-'+json.incident_id+'">'+json.product_number+'</td>';
new_row += '<td id="transaction_type-'+json.incident_id+'">'+json.transaction_type+'</td>';
new_row += '<td id="failure_analysis_flag-'+json.incident_id+'">'+json.failure_analysis_flag+'</td>';
new_row += '</tr>';
Element.replace('add-loading-row', new_row);
} else {
//display a general error
}
} else {
//display general message
}
},
onFailure: function(data) {
//display general error message
}
});
我面临的问题是当表更新时,所有json返回的值都显示为undefined,但是当我使用console.log(json.line_number)时,我可以看到原始值。过去4个小时一直在做这件事,让我失去理智!
我检查过的事情:
值正在从数据库中正常运行,我在错误日志中生成了它们
生成的值的数量也等于所需的值
当我收到json返回时,它正是所需要的。
答案 0 :(得分:1)
试试console.log(new_row)?它可能会向您展示您缺少的东西。