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"}
しかし問題は、データベースに何も投稿されず、更新を押すと行った変更が消えてしまうことです。
これを解決するのを手伝ってもらえますか? 前もって感謝します!:)