Symfony: обновление значений с помощью ajax - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь обновить значения таблицы, используя ajax в Symfony, операция заключается в том, что когда я нажимаю кнопку обновления, он получает идентификатор выбранной строки и новое значение обновленного атрибута.

это мой файл ветки:

 <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 в одном файле ветки:

<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 Ответ

1 голос
/ 25 марта 2019

Здравствуйте, я думаю, что это то, как вы выбираете неправильный идентификатор, вы публикуете {"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); Возможно, вы отправили неправильный код контроллера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...