2017-05-12 16 views
1
<script type="text/javascript"> 
function LoadData(){ 
    var url = serverURL+"/List.php"; 
    $.ajax({ 
     type: "GET", 
     url: url, 
     dataType: "json", 
     success: function(data){  
      $.each(data.data, function (key, value) { 
       var doc_id=value['id']; 
       var doc_name=value['name']; 
       var doc_speci = value['specialize']; 
       $("#myTable").append("<tr><td>"+doc_name+"</td><td>"+doc_speci+"</td><td class='retrieve' data-did="+doc_id+" style='cursor: pointer;'>EDIT</td></tr>");      
      }); 
     }, 
     error: function(data){ 
      toastr.error("Opps! Something went wrong"); 
      $(".se-pre-con").fadeOut("slow"); 
     }, 
    }); 
} 
</script> 

上記は、下の表にtrを追加したものです。次のように HTMLのTABLEは次のとおりです。私はIDを送信し、編集のために他のページにリダイレクトすることができるようテーブルのIDからIDを取得する

<table id="myTable" class='table table-bordered table-hover table-striped'> 
    <tr> 
     <th>Name</th> 
     <th>Specialization</th> 
     <th>Action</th> 
    </tr> 
</table> 

今私はTDクラスからデータ属性からIDを取得するには、取得します。

+2

なぜ 'data-did'の代わりに' id'を使用してみませんか? – Lixus

+0

また、複数の行が追加された場合はどうなりますか?すべてのIDが必要ですか? – Pete

+0

データの重複を避けるためです。 tdのidが固定され、複数のtdが同じidに対して作成され、最後にjsが与えるidを混乱させます。 –

答えて

0

あなたのデータを追加するには、まず、あなたはあなたが値を引用符で囲む追加するべき属性:

data-did='"+doc_id+"'...

だから、レンダリングされたセルこのような何かを見なければならない:

<td class='retrieve' data-did='n' style='cursor: pointer;'>EDIT</td>

(nはある値)

そして、あなたは簡単にjQueryを使ってこの値を取得することができます

$('specific-td').data('did'); //specific-td referes to a specific cell in a row, you must write that, this is just an example

のすべての行を取得するには:

:あなたはたとえば、ボタンを使用している場合 :

var ids = []; 
$('.retrieve').each(function() { 
    ids.push($(this).data('did')); 
}); 

$('#myTable').on('click', '.retrieve input[type="button"]', function() { var id = $(this).parent().data('did'); alert(id); }); 

JSFiddlehttps://jsfiddle.net/y2an0fu7/1/

+0

あなたのソリューションを試しましたが、うまく機能しませんでした。 td.retrieveをテーブルに追加する際に何か間違っているかどうか教えてください。 –

+0

提供されている例を見てください。それはあなたを助けることができるはずです。あなたが間違っていた唯一のことは、属性値を引用符で囲むことではありません。 –

0
// Clicks the edit field 
$("td.retrieve").on("click", function(e) { 

    var id = $(e.currentTarget).attr("data-did"); 

    // do with the ID what you want 
    alert(id); 

}); 

私はjQueryの「データ(...)」機能を持っていることを承知しているが、私は過去に、時にはそれで問題に遭遇しました。 "attr(...)"は類似の処理を行いますが、ストアドオブジェクトの代わりに属性に依存します。

関連する問題