2017-05-11 6 views
0

私は枝のページを持っています。すべての行にアクションオプションのドロップダウンリストがあります。処理された行、つまりドロップダウン選択が変更された行を削除するにはどうすればよいですか。これはテーブルです変更を選択した後、Jqueryが行を削除してAjaxコールを成功させる

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

おそらく$(this)が関数で間違って使われているからです。$(これはオブジェクトを参照しています)、文字列を渡しています – ThisGuyHasTwoThumbs

+0

@ThisGuyHasTwoThumbsどうすれば修正できますか?私はjavascriptとDOMをよく理解していません – blahblah

答えて

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> 

、しかし大きな余地がありますあなたのコードの改善。あなたがこれのためのフィドルを共有することができれば、私はあなたのためにそれをやります。

関連する問題