#jquery #json #ajax #symfony
#jquery #json #ajax #symfony
Вопрос:
я пытаюсь обновить значения таблицы с помощью ajax в symfony, операция заключается в том, что когда я нажимаю на кнопку обновления, она принимает идентификатор выбранной строки и новое значение обновленного атрибута.
это мой файл twig :
<tbody>
{% for post in post %}
<tr>
<td>{{ post.id }}</td>
<td>{{ post.title }}</td>
<td><input type="text" id="description" value="{{ post.description }}"></td>
<td>{{ post.category }}</td>
<td> <input type="submit" name="update" value="update"> </td>
</tr>
{% else %}
<tr>
<td>No Record Found in the database ! </td>
</tr>
{% endfor %}
</tbody>
это мой код jquery и ajax в одном файле twig :
<script type="text/javascript">
$('.plus').on('click', function (e) {
$this = $(this);
$.ajax({
type: 'POST',
url: '/cart/update',//
async: false,
dataType: 'JSON',
data: {postid: $this.data({{ post.id }}),description: $this.find("#description").val()},
success: function (data) {
if(data.success == false){
alert('error')
}
}
});
});
</script>
это моя функция контроллера i, где я хочу получить значения идентификатора и новое описание обновленной строки :
/**
* @Route("/cart/update", name="cart_update")
*/
public function cartUpdateAction( Request $request ) {
$response = new JsonResponse();
$requestData = $request->request->all();
$postid = $requestData['postid'];
$Description = $requestData['description'];
$em = $this->getDoctrine()->getManager();
$post = $em->getRepository('AppBundle:Post')->find($id);
$post->setTitle($title);
$post->setDescription($description);
$post->setCategory($category);
$em->flush();
}
Ответ №1:
Здравствуйте, я думаю, что именно так вы извлекаете неверный идентификатор, который вы публикуете {"productid": "someId", "description": "Some description" }
, и в вашем коде контроллера вы должны извлекать productid
вместо product
. Вместо этого $productid = $requestData['product'];
вы должны вместо этого сделать это $productid = $requestData['productid'];
Здесь также $post = $em->getRepository('AppBundle:Post')->find($id);
вам следует сделать это $post = $em->getRepository('AppBundle:Post')->find($productid);
, возможно, вы разместили неправильный код контроллера.
Комментарии:
1. Medoune проблема не в этом, проблема в том, как мне получить эти значения из таблицы в моем контроллере, чтобы обновить строку