Symfony: обновление значений с помощью ajax

#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 проблема не в этом, проблема в том, как мне получить эти значения из таблицы в моем контроллере, чтобы обновить строку