2017-02-17 10 views
0

jsonファイルをロードしてテーブルに変換する次のコードを書きましたが、エラーが発生していますroleList is not defined
私のコードは正しいですか? jqueryを使用してjsonファイルを動的表に変換する

$(document).ready(function(){ 
 
       // var roleList; 
 
    \t \t  $.getJSON('a.json', function(data) { 
 
    \t \t  \t var roleList=data; 
 
    \t \t  \t // console.log(rolelist); 
 
    \t \t   empRoles(); 
 
    \t \t  }); 
 
    }); 
 
    function empRoles(){ 
 
\t \t for(var i=0;i<roleList.length;i++) 
 
\t  { 
 
\t  var table='<tr id="row'+i+'"><td>'+roleList[i].sNo+'</td><td class="roleName" id="name'+i+'">'+roleList[i].roleName+'</td><td><button class="btn edit btn-info" id="edit'+i+'"><i class="fa fa-pencil"></i>Edit</button><button class="btn update btn-success" id="update'+i+'"><i class="fa fa-floppy-o"></i>Update</button><button class="btn dlt btn-danger" data-toggle="modal" data-target="#confirm"><i class="fa fa-trash-o"></i>Delete</button></td><tr>'; 
 
\t  \t $('#roleListTable').append(table) 
 
\t  } 
 
}

これはa.jsonファイルです:

var data=[{ 
"sNo"  :"1", 
"roleName":"Designer" 
}, 
{ 
"sNo"  :"2", 
"roleName":"Developer" 
}, 
{ 
"sNo"  :"3", 
"roleName":"HR Dept" 
}, 
{ 
"sNo"  :"4", 
"roleName":"Project Manager" 
} 
]; 

HTML部分:

   <table class="table"> 
       <thead class="roleListTableHead"> 
       <tr> 
       <td>S.NO</td> 
       <td>ROLE NAME</td> 
       <td>ACTION</td> 
       </tr> 
       </thead> 
       <tbody id="roleListTable"> 
       </tbody>    
       </table> 

は、誰もがアイデアを与えることはできますか?

+0

が試し引数[ 'parseJSON'](HTTPとして機能するようにあなたのデータを、each()ループを使用して渡す作業を参照してください。 .com/jquery.parsejson /)? –

+0

@Vishal kumarいいえ、私は試していませんでした。 – user7397787

答えて

3

の引数としてroleListを渡します。

var roleList = [{ 
 
    "sNo": "1", 
 
    "roleName": "Designer" 
 
    }, 
 
    { 
 
    "sNo": "2", 
 
    "roleName": "Developer" 
 
    }, 
 
    { 
 
    "sNo": "3", 
 
    "roleName": "HR Dept" 
 
    }, 
 
    { 
 
    "sNo": "4", 
 
    "roleName": "Project Manager" 
 
    } 
 
]; 
 

 
empRoles(roleList); 
 

 
function empRoles(roleList) { 
 
    for (var i = 0; i < roleList.length; i++) { 
 
    var table = '<tr id="row' + i + '"><td>' + roleList[i].sNo + '</td><td class="roleName" id="name' + i + '">' + roleList[i].roleName + '</td><td><button class="btn edit btn-info" id="edit' + i + '"><i class="fa fa-pencil"></i>Edit</button><button class="btn update btn-success" id="update' + i + '"><i class="fa fa-floppy-o"></i>Update</button><button class="btn dlt btn-danger" data-toggle="modal" data-target="#confirm"><i class="fa fa-trash-o"></i>Delete</button></td><tr>'; 
 
    $('#roleListTable').append(table) 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table class="table"> 
 
    <thead class="roleListTableHead"> 
 
    <tr> 
 
     <td>S.NO</td> 
 
     <td>ROLE NAME</td> 
 
     <td>ACTION</td> 
 
    </tr> 
 
    </thead> 
 
    <tbody id="roleListTable"> 
 
    </tbody> 
 
</table>


あなたはa.jsonファイル、正しくないJSONファイルのデータ構造からvar data=を削除する必要があります。 //api.jquery:Plunker

+0

@ user7397787、もう1つのコード – Satpal

+0

に「応答データの読み込みに失敗しました」というエラーはありません。 – user7397787

+0

@ user7397787、データを取得していますか? 'console.log(roleList)'を確認してください。 – Satpal

1

 $.getJSON('a.json', function(data) { 
     empRoles(data); 
    }); 
    function empRoles(data) { 
     $.each(data,function(i,roleList) { 
     var table = '<tr id="row' + i + '"><td>' + roleList.sNo + '</td><td class="roleName" id="name' + i + '">' + roleList.roleName + '</td><td><button class="btn edit btn-info" id="edit' + i + '"><i class="fa fa-pencil"></i>Edit</button><button class="btn update btn-success" id="update' + i + '"><i class="fa fa-floppy-o"></i>Update</button><button class="btn dlt btn-danger" data-toggle="modal" data-target="#confirm"><i class="fa fa-trash-o"></i>Delete</button></td><tr>'; 
     $('#roleListTable').append(table) 
     }); 
     } 

var data = [{ 
 
    "sNo": "1", 
 
    "roleName": "Designer" 
 
    }, 
 
    { 
 
    "sNo": "2", 
 
    "roleName": "Developer" 
 
    }, 
 
    { 
 
    "sNo": "3", 
 
    "roleName": "HR Dept" 
 
    }, 
 
    { 
 
    "sNo": "4", 
 
    "roleName": "Project Manager" 
 
    } 
 
]; 
 

 
function empRoles(data) { 
 
    $.each(data,function(i,roleList) { 
 
    var table = '<tr id="row' + i + '"><td>' + roleList.sNo + '</td><td class="roleName" id="name' + i + '">' + roleList.roleName + '</td><td><button class="btn edit btn-info" id="edit' + i + '"><i class="fa fa-pencil"></i>Edit</button><button class="btn update btn-success" id="update' + i + '"><i class="fa fa-floppy-o"></i>Update</button><button class="btn dlt btn-danger" data-toggle="modal" data-target="#confirm"><i class="fa fa-trash-o"></i>Delete</button></td><tr>'; 
 
    $('#roleListTable').append(table) 
 
    }); 
 
} 
 

 
empRoles(data);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="roleListTable"></div>

+1

個別のjsonファイルをロードします。 – user7397787

+0

することができます – madalinivascu

関連する問題