Symfony 4 X可编辑-更新

时间:2019-05-22 10:04:38

标签: symfony bootstrap-4 x-editable

我的任务是使用x可编辑库在Symfony 4中进行引导。 单击表中的字段后,出现“输入”,并且字段中的值也是如此。我有一个要更新数据库的问题。在下面的代码中,我正在使用固定值“ Koralik”对数据库进行更新。我希望使用“输入”中的值进行更新,以求基础。

<table id="tab1" class="table table-bordered table-striped table-hover"> 
<thead style="color:blue;">
<tr><th>Imię</th><th>Nazwisko</th></tr>
</thead>

<tbody id="myTable">
{%for kierowca_one in kierowca%}

<tr class="text-success">
<td>{{kierowca_one.Imie}}</td>
<td><span class="myElement" data-type="text" data-pk=" 
{{kierowca_one.id}}" data-url="{{path('app_update', 
{id:kierowca_one.id})}}">{{kierowca_one.Nazwisko}}</span> </td>
</tr>

{%endfor%}
</tboody>
</table>

$('.myElement').editable({ 
 type: "POST",
 emptytext: 'Brak',
 showbuttons: false,
 mode: 'inline',
 //dataType: 'json',
 validate: function(value){
 if($.trim(value) == '')
 {
 return 'This field is required';
 }
 }
}); 

   /**
* @Route("/update/{id}", name="app_update", methods={"GET"})
* @IsGranted("ROLE_USER")
*/
public function updateMethod(EntityManagerInterface $em, $id)
{

        $repository=$em->getRepository(Kierowcy::class);
        $kierowca=$repository->find($id);

        $kierowca->setNazwisko('Kowalik');
        $em->persist($kierowca);
        $em->flush();

        return new Response();

}

1 个答案:

答案 0 :(得分:0)

这是我的方法。

js文件

 $('#s').editable({
    selector: '.js-editable',
    url: urlUpdateTopic,
    params:function(params){
        params.pk = $(this).closest('tr').data('id');
        return params;
    },
    success: function(value, response) {
        if(response){
            $(this).html(value);
        }
    },
    error: function(response) {
        if(response.status === 500) {
            console.log('Service unavailable. Please try later.');
        } else {
            console.log(response.responseText);
        }
    },
    type: 'text',
    pk: 1,
    mode: 'inline',
    showbuttons: false,
    toggle: 'dblclick',
    onblur: "submit",
    clear: false,
    emptytext: ''
});

这是控制器

public function updateTopicAction(Request $request)
{
    $id = $request->request->get('pk');
    $value = $request->request->get('value');
}

您也可以在这里Submitting data via Ajax in X-Editable

看到一个很好的例子