Javascript 无法分析来自服务器的Cakephp Jquery Datatable JSON数据

Javascript 无法分析来自服务器的Cakephp Jquery Datatable JSON数据,javascript,php,jquery,json,cakephp,Javascript,Php,Jquery,Json,Cakephp,使用cakephp和jquery(v1.2.0)我得到了以下警告: DataTables警告(表id='tblinv'):DataTables警告:无法解析来自服务器的JSON数据。这是由JSON格式错误引起的 这是我的脚本代码 var dt; var tipoStock = "lkdfjdklfjdklfjd"; /* pm 3.2.2015 */ $(document).ready(function () { $("#filtro-semaforos").chosen

使用cakephp和jquery(v1.2.0)我得到了以下警告: DataTables警告(表id='tblinv'):DataTables警告:无法解析来自服务器的JSON数据。这是由JSON格式错误引起的

这是我的脚本代码

  var dt;
var tipoStock = "lkdfjdklfjdklfjd";   /* pm 3.2.2015 */




$(document).ready(function () {
    $("#filtro-semaforos").chosen({
        allow_single_deselect: true,
        disable_search: true,
        width: '40px'
    });

    dt = $("#tblinv").DataTable({
        "bProcessing": true,
        "bServerSide": true,
        'sAjaxSource': "<?php echo $this->base; ?>/Inventarios/stock<?php if(!empty($tipoInventario)){ echo "/".$tipoInventario; } ?>",
                    'bAutoWidth': false,
                    'bSort': true,
                    "oSearch": {"bRegex": false, "bSmart": true},
                    "decimal": ",",
                    "thousands": ".",
                    'iDisplayLength': 20,
                    "sPaginationType": "full_numbers",
                    "sDom": 'T<"clear">lfrtip',
                    //"aoColumns": [null, null, null, null, null, {"sType": 'numeric-comma'}, {"sType": 'numeric-comma'}, {"sType": 'numeric-comma'}, null, null, null,null],
                    //   "oTableTools": {

                    // },

                    "oTableTools": {
                        "sSwfPath": "<?php echo $this->webroot; ?>js/plugins/datatables/swf/copy_csv_xls_pdf.swf",
                        "aButtons": [
                        ]
                    },
                    "aaSorting": [],
                    "fnRowCallback": function (nRow, aData, iDisplayIndex, iDisplayIndexFull) {
                        $(nRow).children().each(function (index, td) {
                            switch (index)
                            {
                                case 5:
                                    {
                                        if ($(td).html() !== '')
                                        {
                                            $(td).addClass("pesos");
                                            $(td).addClass("derecha_p");
                                        }
                                    }
                                    break;
                                case 6:
                                    {
                                        if ($(td).html() !== '')
                                        {
                                            $(td).prepend('<small class="small">US$&nbsp;&nbsp;</small>');
                                            $(td).addClass("derecha_p");

                                            //$(td).addClass("usd");

                                        }
                                    }
                                    break;
                                case 7:
                                    {
                                        if (parseInt($(td).html()) <= 0)
                                        {
                                            $(td).css("color", "red");
                                        }
                                        $(td).addClass("tdr");
                                        $(td).addClass("gran");
                                    }
                                    break;
                                case 8:
                                    {
                                        $(td).html($('<small>').append('&nbsp;&nbsp;' + $(td).html()));
                                    }
                                    break;


                                case 11:
                                    $(td).css("display", "none");
                                    break;
                            }
                        });
                        return nRow;
                    },
                    "fnInitComplete": function () {
                        $("#cargando").hide();
                        $("#divtbl").fadeIn('slow');
                    }



                });

                // dt.fnFilter( 'Buscar....');  // Codigo Original. pm para que e traiga la busqueda vacia de entrada
                dt.fnFilter('');  // pm para que e traiga la busqueda vacia de entrada

                // workaround por Diego:
                // vaciar el contenido para que quede sin el "Buscar.."    

有什么想法吗?我看不到格式错误

我有一个简单但有效的解决方案,当我们进行多次搜索(我们键入并删除,然后再次键入几个单词)时,json将被破坏,代码将不会发送任何json,因此我们需要在执行筛选后重新绘制datatable

  $("thead input").keyup(function () { 
                dt.fnFilter(HtmlEncode(this.value), $("thead input").index(this));
                dt.fnDraw();
  });
就这样,当我使用服务器端时,我不需要重新加载ajax,只需要重新绘制,我希望这对其他人有所帮助

  $("thead input").keyup(function () { 
                dt.fnFilter(HtmlEncode(this.value), $("thead input").index(this));
                dt.fnDraw();
  });