选择更改后,Jquery删除行会成功调用Ajax

时间:2017-05-11 11:31:27

标签: javascript php jquery ajax twig

我有一张帖子的桌子。每行都有包含操作选项的下拉列表。如何删除已处理的行,即下拉选择已更改。这是一张表

  <tr>
  <td>
     <a href="{{ path('posts_show', {'id': report.post.id}) }}">
                {{ report.post.title }}
     </a>
   </td>
   <a href="{{ path('ausers_show', {'id': report.reporter.id}) }}">
              {{ report.reporter.firstName }} {{ report.reporter.lastName }}
    </a>
    </td>
    <td>
       <select class="select-status" base-url="{{ path('reports_process', {'report': report.id, 'status': 'status'}) }}">
               <option value="">Process</option>
               <option value="dismiss">Dismiss</option>
               <option value="delete">Delete</option>
     </select>
    </td>
    </tr>

这个脚本。 Ajax调用工作正常,但我无法在成功调用

时删除行
   <script>
    $('.select-status').change(function() {
        var url = $(this).attr('base-url');

        url = url.substr(0, url.lastIndexOf("/"));

        url =  url + '/' + $(this).val();

        processReport(url);
    });

    function processReport($url) {
        var $tr = $(this).closest('tr');
        $.ajax({
            type: "PUT",
            url: $url,
            async: true,
            data: { },
            success: function () {
                    $tr.remove();
            }
        });
    }
</script>

1 个答案:

答案 0 :(得分:4)

请按以下步骤更新您的脚本块:

<script>
    $('.select-status').change(function() {
        var url = $(this).attr('base-url');

        url = url.substr(0, url.lastIndexOf("/"));

        url =  url + '/' + $(this).val();

        processReport(url, $(this));
    });

    function processReport(url, row) {
        var $tr = row.closest('tr');

        $.ajax({
            type: "PUT",
            url: url,
            async: true,
            data: { },
            success: function () {
                $tr.remove();
            }
        });
    }
</script>

我没有更改代码,但代码中有很大的改进。如果你可以为此分享一个小提琴,我会为你做。