duanbipu1720 2017-05-11 11:31
浏览 44
已采纳

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

I have twig page with table of posts. Every row has dropdown list with action options. How can I remove the row that has been processed, ie dropdown select was changed. This is a table

  <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>

This script. Ajax call works fine, but I can't remove row on successful call

   <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条回答 默认 最新

  • duanlan7239 2017-05-11 11:44
    关注

    Please update your script block as following:

    <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>
    

    I have not changed your code much, however there is big scope of improvements in your code. If you could share a fiddle for this, I would do it for you.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。