数据表通过Ajax更新实体

时间:2012-10-12 23:04:35

标签: jquery jquery-plugins symfony datagrid datatables

当我尝试从Symfony2中的视图中的表更新元素时​​,我一直收到此错误:

无法更新单元格(服务器错误)

我不确定问题是什么。路由是不正确的?

包含javascript和表的twig(view)文件。

用于从控制器检索表的数据的javascript:

 <script language="JavaScript" type="text/javascript">
    $(document).ready(function () {
        $('#myDataTable').dataTable(

                {
                    "bSort": true,
                    "bFilter": true,
                    "bProcessing": true,
                    "bServerSide": true,
                    "sAjaxSource": "{{ path('CetiucValidateSurveyBundle_renderJson')}}"
                }

        ).makeEditable({

                sUpdateURL: "{{ path('CetiucValidateSurveyBundle_updateChange')}}"


        }
        );




    });
   </script>

控制器中更新de实体的方法(在本例中简化了它,它只从请求中检索数据)。

public function updateChangeAction(Request $request)
{

    $id = $_REQUEST['id'] ;
    $value = $_REQUEST['value'] ;
    $column = $_REQUEST['columnName'] ;
    $columnPosition = $_REQUEST['columnPosition'] ;
    $columnId = $_REQUEST['columnId'] ;
    $rowId = $_REQUEST['rowId'] ;


return $value;
}

这是更新操作的路由条目

CetiucValidateSurveyBundle_updateChange:
    defaults: { _controller: "CetiucValidateSurveyBundle:Validate:updateChangeAction", _format: json }
    pattern:   /update
    requirements: { _format: (json), _method: POST }

这是我调用update方法时写的日志,我没有找到对我的问题有用的东西:

  

[2012-10-16 03:25:55] event.DEBUG:通知事件“kernel.request”到   倾听者   “的Symfony \包\ FrameworkBundle \事件监听\ RouterListener :: onKernelRequest”。   [] [] [2012-10-16 03:25:55] request.INFO:匹配的路线   “CetiucValidateSurveyBundle_renderJson”(参数:“_ control”:   “Cetiuc \包\ ValidateSurveyBundle \控制器\ ValidateController :: renderJsonAction”   “_route”:“CetiucValidateSurveyBundle_renderJson”)[] [] [2012-10-16   03:25:55] event.DEBUG:向侦听器发出通知事件“kernel.request”   “的Symfony \包\ AsseticBundle \事件监听\ RequestListener :: onKernelRequest”。   [] [] [2012-10-16 03:25:55] event.DEBUG:通知事件   “kernel.controller”到监听器   “的Symfony \包\ FrameworkBundle \ DataCollector \ RequestDataCollector :: onKernelController”。   [] [] [2012-10-16 03:25:55] event.DEBUG:通知事件   “kernel.controller”到监听器   “Sensio公司\包\ FrameworkExtraBundle \事件监听\ ControllerListener :: onKernelController”。   [] [] [2012-10-16 03:25:55] event.DEBUG:通知事件   “kernel.controller”到监听器   “Sensio公司\包\ FrameworkExtraBundle \事件监听\ ParamConverterListener :: onKernelController”。   [] [] [2012-10-16 03:25:55] event.DEBUG:通知事件   “kernel.controller”到监听器   “Sensio公司\包\ FrameworkExtraBundle \事件监听\ TemplateListener :: onKernelController”。   [] [] [2012-10-16 03:25:55] event.DEBUG:通知事件   “kernel.controller”到监听器   “JMS \ SecurityExtraBundle \控制器\ ControllerListener :: onCoreController”。   [] [] [2012-10-16 03:25:55] event.DEBUG:通知事件   对监听器的“kernel.response”   “的Symfony \分量\安全\ HTTP \防火墙\ ContextListener :: onKernelResponse”。   [] [] [2012-10-16 03:25:55] event.DEBUG:通知事件   对监听器的“kernel.response”   “的Symfony \分量\ HttpKernel \事件监听\ ResponseListener :: onKernelResponse”。   [] [] [2012-10-16 03:25:55] event.DEBUG:通知事件   对监听器的“kernel.response”   “的Symfony \包\ SecurityBundle \事件监听\ ResponseListener :: onKernelResponse”。   [] [] [2012-10-16 03:25:55] event.DEBUG:通知事件   对监听器的“kernel.response”   “的Symfony \桥\独白\处理器\ FirePHPHandler :: onKernelResponse”。 []   [] [2012-10-16 03:25:55] event.DEBUG:通知事件“kernel.response”   听众   “Sensio公司\包\ FrameworkExtraBundle \事件监听\ CacheListener :: onKernelResponse”。   [] [] [2012-10-16 03:25:55] event.DEBUG:通知事件   对监听器的“kernel.response”   “的Symfony \分量\ HttpKernel \事件监听\ ProfilerListener :: onKernelResponse”。   [] [] [2012-10-16 03:25:55] event.DEBUG:通知事件   对监听器的“kernel.response”   “的Symfony \包\ WebProfilerBundle \事件监听\ WebDebugToolbarListener :: onKernelResponse”。   [] []

1 个答案:

答案 0 :(得分:-1)

好的,谢谢卡洛斯。我做了一些研究,更新功能不需要任何json功能。

由于您的错误声明服务器错误,如果您可以提供symfony2日志以便我们识别服务器端错误,那将是非常好的。

您的更新方法或路由都有问题。