Javascript 使用JEditable插件时发布500(内部服务器错误)
我正在尝试在我的Symfony2应用程序中使用JEditable插件Javascript 使用JEditable插件时发布500(内部服务器错误),javascript,jquery,symfony,jeditable,Javascript,Jquery,Symfony,Jeditable,我正在尝试在我的Symfony2应用程序中使用JEditable插件PYS实体是一个影视节目实体;然后我得到了Usuario和Critica实体。我想用这个插件来管理用户的批评。我已经分析了越来越多的例子,但我无法让它发挥作用。该值(在本例中为批评家的标题)在模板中更新,但不在数据库中更新;刷新浏览器时,会显示旧值 错误: 这是我的JS: $('.edit').editable(function(value, settings) { var data = {};
PYS
实体是一个影视节目实体;然后我得到了Usuario
和Critica
实体。我想用这个插件来管理用户的批评。我已经分析了越来越多的例子,但我无法让它发挥作用。该值(在本例中为批评家的标题)在模板中更新,但不在数据库中更新;刷新浏览器时,会显示旧值
错误:
这是我的JS:
$('.edit').editable(function(value, settings) {
var data = {};
data[this.id] = value;
console.log(path);
console.log(data);
$.post(path, data);
return(value);
}, {
indicator : 'Saving...',
tooltip : 'Click to edit...'
});
这是路线:
critica_ajax:
locales: { es: "/gestion-critica/{pysStr}/", en: "/manage-critic/{pysStr}/" }
defaults: { _controller: UsuarioBundle:Default:gestionarCritica }
这是控制器:
public function gestionarCriticaAction($pysStr)
{
$em = $this->getDoctrine()->getManager();
$pys = $em->getRepository('PYSBundle:Pys')->findPys($pysStr);
$usuario = $this->get('security.context')->getToken()->getUser();
$critica = $em->getRepository('UsuarioBundle:Usuario')->findCritica($usuario, $pys);
if(!$critica)
{
$critica = new Critica($usuario, $pys);
}
$criTitulo = $this->request->get('value');
$critica->setCriTitulo($criTitulo);
$critica->setCriContenido($criContenido);
$critica->setCriFecha(new \DateTime("now"));
$em->persist($critica);
$em->flush();
return new Response($criTitulo);
}
细枝模板:
<h2 class="edit">{{ critica.criTitulo }}</h2>
<script>
var path = "{{ path('critica_ajax', { 'pysStr': pelicula.pysStr}) }}";
</script>
您需要获得如下请求:
$request = $this->getRequest();
而不是
$request = $this->request;
使用方法返回请求,该方法不是类属性发生此错误时,日志显示什么?控制台.log(路径)代码>和
控制台日志(数据)代码>显示正确的值;第一个显示正确的路径,第二个显示新文本值的路径,您可以看到Object{:“nhghg”}
请将Symfony返回的错误告知我们。单击红色的ajax请求(失败的请求),然后单击预览选项卡。如果你在app_dev.php上,它将为我们提供调试的基本信息。错误出现在JS文件的这一行:$.post(path,data);
。抱歉@Tristan,但我不太明白你说的话。我在问题中发布了帖子,但我不能就像你说的“点击红色的ajax请求”。当然你可以,只需点击红色文本(“)。然后单击chrome调试栏中的预览面板。它会给你一个错误,给你500。PS:问题不是来自JS插件,而是错误存在于你的控制器中,你的GestionCriticaAction就在那里。
$request = $this->request;