본문 바로가기

자바스크립트

02. jQuery를 이용한 데이터 출력 방법


JQuery를 이용한 데이터 출력 방법 





1. 개요



프론트엔드 개발 시 ajax 통신을 이용해 외부에서 데이터를 가져와 UI에 값을 넣어주는 방법을 많이 사용한다. 이번 포스팅에는 UI구성이나 특성에 적합한 데이터 출력방법을 알아본다.




2. 구현방법 및 설명



첫번째, 템플릿을 활용한 값 출력a


설명: 복잡한 마크업형태의 묶음으로 구성되어 있고, 반복적으로 ui가 뿌려진다.

참고: jQuery를 이용한 출력에 대한 전반적인 구성이나 기능위주로 설명되기 때문에

  css와 같이 레이아웃 관련 내용은 생략한다.


- 데이타 구성

- 파일명 : person.json

var data = [{ name:  "홍길동", age: "20", address: "서울", birth: "2016" },

name:  "이순신", age: "30", address: "부산", birth: "2016" },

name:  "장영실", age: "25", address: "대구", birth: "2016" },

name:  "허준", age: "50", address: "광주", birth: "2016" }]


- 메인파일 구성

- 파일 : main.html

<head>

<script src="https://code.jquery.com/jquery-1.11.3.js"></script>

<script src="http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"></script>

</head>

<body>

<table>

<tbody id="personUI">

<!--

@ templete 

-->

</tbody>

</table>


<!-- 템플릿 -->

<javascript type="text/javascript" id="personUI_tmpl">

<tr>

<td>이름 : ${name}</td>

<td>나이 : ${age}</td>

<td>주소 : ${address}</td>

<td>생일 : ${birth}</td>

</tr>

</javascript>


$(document).ready(function() {

var markup = $("#personUI_tmpl");


$("#personUI").empty();

$(markup).tmpl(data).appendTo("#personUI");

});

</body>




두번째, Form 내 입력필드에 값 설정 및 출력


설명: Form태그로 감쌓여져 있으며 사용자로 부터 값을 입력받을 수 있다.

  타입이 같은 입력태그에 값을 설정할 때 유용한 방법이다.

  data객체의 키이름과 입력태그의 name 속성 값을 동기화 시켜서 관리한다.


- 데이타 구성

- 파일 : person.json

var data = { id:  "test", name: "홍길동", tel: "011000000", hobby: "여행" };


- 메인파일 구성

- 파일 : main.html

<body>

<form>

<input type="text" name="id" />

<input type="text" name="name" />

<input type="text" name="tel" />

<input type="text" name="hobby" />

</form>


$(document).ready(function() {


var list = $("input[type=text]");


$(list).each(function(index){

this.value = data[this.name];

});

});

</body>



세번째, 일반 태그에 값 설정 및 출력


설명: 단순한 텍스트 값만 필요로 하는 곳에 하나의 템플릿을 공통으로 활용하고 싶을 때 활용한다.

  이 방법은 클래스의 공통명을 배열로 가져올 수 있는 특징을 이용해서 json데이터 속성과 

  태그 아이디 값을 동기화 시켜주므로써 데이터 출력을 편리하게 관리 할 수 있다.


- 데이타 구성

- 파일 : person.json

var data = {name: "홍길동", age: "30", address: "서울" };


- 템플릿 구성

<javascript type="text/javascript" id="personUI_tmpl">

<span>${label}</span>

</javascript>


- 메인파일 구성

- 파일 : main.html

<head>

<script src="https://code.jquery.com/jquery-1.11.3.js"></script>

<script src="http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"></script>

</head>

<body>

<ui>

<li>이름</li>

<li id="name" class="view-type-textfiled">

<!--

@ templete

-->

</li>

</ui>

<ui>

<li>나이</li>

<li id="age" class="view-type-textfiled">

<!--

@ templete

-->

</li>

</ui>

<ui>

<li>주소</li>

<li id="address" class="view-type-textfiled">

<!--

@ templete

-->

</li>

</ui>


$(document).ready(function() {


var list = $("ul").find(".view-type-textfiled"),

markup = $("#personUI_tmpl");


$(list).each(function(index){


var label =  this.id,

data = {label: data[label]};


$("#"+label).empty();

$(markup).tmpl(data).appendTo("#"+label);

});

});

</body>