通过Ajax实现数据更新实体
当我尝试从Symfony2视图中的表中更新元素时,我不断收到此错误:
单元格无法更新(服务器错误)
我不确定问题是什么。 路由是不正确的?
具有javascript和表格的树枝(视图)文件。
用于从控制器检索表的数据的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 entity的方法(在本例中它被简化,它只从请求中检索数据)。
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 Bundle FrameworkBundle EventListener RouterListener :: onKernelRequest”。 [] [] [] [2012-10-16 03:25:55] request.INFO:匹配路由“CetiucValidateSurveyBundle_renderJson”(参数:“_controller”:“Cetiuc Bundle ValidateSurveyBundle Controller ValidateController :: renderJsonAction”,“_route” :“CetiucValidateSurveyBundle_renderJson”)[] [] [2012-10-16 03:25:55] event.DEBUG:通知事件“kernel.request”监听器“Symfony Bundle AsseticBundle EventListener RequestListener :: onKernelRequest”。 event.DEBUG:通知事件“kernel.controller”给监听器“Symfony Bundle FrameworkBundle DataCollector RequestDataCollector :: onKernelController”。[] [] [] [2012-10-16 03:25:55] event.DEBUG:通知事件“kernel.controller”以监听器“Sensio Bundle FrameworkExtraBundle EventListener ControllerListener :: onKernelController”。[] [] [] [2012-10-16 03:25:55] event.DEBUG:通知事件“kernel.controller”监听器“Sensio Bundle FrameworkExtraBundle EventListener ParamConverterListener :: onKernelController”。[] [] [] [2012-10-16 03:25:55] event.DEBUG:通知事件“kernel.controller”以监听器“Sensio Bundle FrameworkExtraBundle EventListener TemplateListener :: onKernelController”。[] [] [] [2012-10-16 03:25:55] event.DEBUG:通知事件“kernel.controller”到监听器“JMS SecurityExtraBundle Controller ControllerListener :: onCoreController”。[] [] [] [2012-10-16 03:25:55] event.DEBUG:通知事件“kernel.response”给监听器“Symfony Component Security Http Firewall ContextListener :: onKernelResponse”。 event.DEBUG:通知事件“kernel.response”给监听器“Symfony Component HttpKernel EventListener ResponseListener :: onKernelResponse”。[] [] [] [] [10-10] event.DEBUG:通知事件“kernel.response”给监听器“Symfony Bundle SecurityBundle EventListener ResponseListener :: onKernelResponse”。[] [] [] [] [2012-10-16 03:25:55] event.DEBUG:通知事件“kernel.response”给侦听器“Symfony Bridge Monolog Handler FirePHPHandler :: onKernelResponse”。 event.DEBUG:通知事件“kernel.response”给侦听器“Sensio Bundle FrameworkExtraBundle EventListener CacheListener :: onKernelResponse”。[] [] [] [2012-10-16 03:25:55] event.DEBUG:通知事件“kernel.response”给侦听器“Symfony Component HttpKernel EventListener ProfilerListener :: onKernelResponse”。 event.DEBUG:通知事件“kernel.response”给监听器“Symfony Bundle WebProfilerBundle EventListener WebDebugToolbarListener :: onKernelResponse”。[] [] [] [] [2012-10-16 03:25:55] [] []
好的,谢谢Carlos。 我做了一些研究,更新功能不需要任何json功能。
由于您的错误是陈述服务器错误 ,如果您可以提供您的symfony2日志以便我们可以识别服务器端错误,那将是非常好的。
您的更新方法或路由有问题。
链接地址: http://www.djcxy.com/p/53991.html