0

我在后端使用 perl 模块和 cgi 脚本,在前端使用prototypejs。我基本上是在使用 ajax 来调用在服务器上运行的 cgi 脚本,该脚本调用另一个文件将发送的数据放入 oracle db 中。

前端脚本是:

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 返回值在表更新时显示为未定义,但是当我使用 console.log(json.line_number) 时,我可以看到原始值。过去 4 个小时一直在做这件事,我疯了!!

我检查过的事情:

  1. 这些值正确地从数据库中取出,我在错误日志中生成了它们

  2. 生成的值的数量也等于所需的值

  3. 当我收到 json 返回时,这正是所需要的。

4

1 回答 1

1

Try console.log(new_row)? It may show you something you are missing.

于 2012-09-11T04:32:30.967 回答