我正在为 JavaScript 使用 jeditable 插件,我想在我的 Symfony2 项目中实现它。我想使用插件编辑一个名称,并且该名称也将在数据库中进行编辑,而不是刷新页面时要消失的更改,但就我而言,它已经消失了。:(
我几乎可以肯定控制器不应该是这样的,问题出在它身上,但究竟该怎么写呢?这里是:
public function editCategoryAction(Request $request, $id)
{
$category = $this->repository->find($id);
$form = $this->createForm(new CategoryType(), $category);
if ($request->isMethod('POST')) {
$form->bind($request);
if ($form->isValid()) {
$this->em->persist($category);
$this->em->flush();
return $this->redirect($this->generateUrl('categories'));
}
}
return $this->render(
'AcmeBudgetTrackerBundle:Categories:categories.html.twig', array(
'form' => $form->createView()));
}
这是我的模板:
<a href="{{ path('edit_category', { 'id': cat.id}) }}">
<strong class="edit">
{{ cat.name }}
</strong>
</a>
<script>
var token = "{{form._token.vars.value}}";
var path = "{{ path('edit_category', { 'id': cat.id}) }}";
</script>
这是在.js 文件中:
(function(){
$('.edit').editable(function (value, settings) {
var data = {};
data[this.id] = value;
data["_token"] = token;
console.log(path);
console.log(data);
$.post(path, data);
return(value);
}, {
indicator:'Saving...'
});
}) ();
控制台中的输出看起来不错:
/BudgetTracker/web/app_dev.php/edit_category/52
Object {: "Edu", _token: "9d29860b59ccafbc265ea12346c91fa7e378cc97"}
但问题是没有任何内容发布到数据库中,当我点击刷新时,我所做的更改就消失了。
你能帮我解决这个问题吗?提前致谢!:)