加载JSON和绑定到表单字段不一致

时间:2013-11-08 16:37:09

标签: php jquery json

所以我有一个datagrid,当单击一行时,表单被加载,然后拉出JSON数据并使用JQuery传播表单字段。它很有效......有时候。这是非常不一致的,我无法弄清楚为什么它每次都不起作用。我可以点击一行,它会加载,然后(不刷新)接下来几次它可能不会,然后(仍然没有刷新)接下来几次随机次数。

任何帮助将不胜感激。脚本做的第一件事是将相应的表单加载到div #dlg中,然后拉出JSON数据,然后解析并填充字段。

function fw_getFormData(r_id, t_name, r_key){   
    $('#dlg').dialog('refresh', 'dg_process/dg_edit_form.php?table='+t_name),
    jsonURL = 'form_data/dg_forms_data.php?table='+t_name+'&pkey='+r_key+'&id='+r_id;

    var jqxhr = $.getJSON( jsonURL, function() {})

        //JSON load is complete. Propagate form fields.
        .done(function(data) {
            $.each(data, function(index, obj) {  
                $.each(obj, function(key, value) {
                    //$('#'+key).attr("value", value);
                    $("#dlg").parents("div").find('input[name='+key.toLowerCase()+']').val(value);
                 }); //End inner parse of JSON
             }); //End outer Parse
         })  // End .done

        //JSON Did not load
            .fail(function() {
                 alert( "JSON could not load" );
            }) // End .fail
});

它正在解析的JSON看起来像这样:

[{"staffID":"1","fname":"Bill","lname":"Smith","email_address":"bsmith@fakeemail.net","password":"testpw"}]

作为最后一点,.fail的警报在它不起作用时永远不会触发。

0 个答案:

没有答案