AJAX
AJAX 2일차 : 제이슨 배열출력방법
나이많은 초보
2022. 10. 5. 11:39
기본 방법은 밑에 있다...중요한것은 받은걸 화면 출력...나는 FOR문이 약하다..ㅠㅠ
<h4>6. 서버로 전송값을 보내고 JSONArray로 결과 받아서 처리</h4>
<p>유저 번호를 보내서 해당 유저를 가져오고, 없는 경우 전체리스트 가져오기</p>
유저 번호 입력 :
<input type="text" id="find-num">
<br>
<p id="p6"></p>
<button id="jq-btn6">실행 및 결과확인</button>
/* 6번 */
$("#jq-btn6").on("click", function(){
var idNum=$("#find-num").val();
$.ajax({
url:"/ajax/ex5.kh",
type:"get",
data:{"idNum":idNum},
success:function(data){
/* data.forEach((member,i)=> {
$("#p6").append('<p>'+member.memberId +member.memberPwd+'</p>');
}); */
var htmlSTR='';
for(var i=0;i<data.length;i++){
htmlSTR+=data[i].memberId +","+ data[i].memberPwd+"<br>";
}
$("#p6").html(htmlSTR);
},
error:function(){
console.log("처리실패");
}
})
화면 출력시 forEach문 돌리는 것도 주의 해야함!
@ResponseBody
@RequestMapping(value = "/ajax/ex5.kh",produces="application/json;charset=UTF-8", method = RequestMethod.GET)
public String exerciseAjax5(@RequestParam("idNum") String idNum){
ArrayList<Member> mList=new ArrayList<Member>();
mList.add(new Member("khuser01", "pass01"));
mList.add(new Member("khuser02", "pass02"));
mList.add(new Member("khuser03", "pass03"));
mList.add(new Member("khuser04", "pass04"));
mList.add(new Member("khuser05", "pass05"));
JSONArray jsonArr= new JSONArray();
Boolean check=false;
for(Member mOne : mList) {
if(mOne.getMemberId().equals(idNum)) {
JSONObject jsonObj=new JSONObject();
jsonObj.put("memberId", mOne.getMemberId());
jsonObj.put("memberPwd",mOne.getMemberPwd()); //======>{"memberId":"khuser01","memberPwd":"pass01"}
jsonArr.add(jsonObj);
check=true;
break;
}
}
if(!(check)) {
for(Member mTwo : mList) {
JSONObject jsonObj=new JSONObject();
jsonObj.put("memberId", mTwo.getMemberId());
jsonObj.put("memberPwd",mTwo.getMemberPwd());
jsonArr.add(jsonObj);
}
}
//return jsonArr.toJSONString();
return jsonArr.toString();
}
여기서 중요한것은 값을 받아서 없으면 전체 출력 데이터인데 FOR안에 ELSE로 진행했더니 배열값이 5번 출력된다.
밖으로 뽑아서 진행해야 한다. CHECK값으로 부분을 출력한것!!
<h4>6. 서버로 전송값을 보내고 JSONArray로 결과 받아서 처리</h4>
<p>유저 번호를 보내서 해당 유저를 가져오고, 없는 경우 전체리스트 가져오기</p>
유저 번호 입력 :
<input type="text" id="find-num">
<br>
<p id="p6"></p>
<button id="jq-btn6">실행 및 결과확인</button>
@ResponseBody
@RequestMapping(value = "/ajax/ex5.kh",produces="application/json;charset=UTF-8", method = RequestMethod.GET)
public String exerciseAjax5(){
ArrayList<Member> mList=new ArrayList<Member>();
mList.add(new Member("khuser01", "pass01"));
mList.add(new Member("khuser02", "pass02"));
mList.add(new Member("khuser03", "pass03"));
mList.add(new Member("khuser04", "pass04"));
mList.add(new Member("khuser05", "pass05"));
JSONArray jsonArr= new JSONArray(); //======> [ ] 배열 생성
for(Member mOne : mList) {
JSONObject jsonObj=new JSONObject(); //======>{ } 객체 생성 / 배열에 전달후 초기화
jsonObj.put("memberId", mOne.getMemberId());
jsonObj.put("memberPwd",mOne.getMemberPwd()); //======>{"memberId":"khuser01","memberPwd":"pass01"}
jsonArr.add(jsonObj); //======>[{},{"memberId":"khuser01","memberPwd":"pass01"}.{},...]
}
//return jsonArr.toJSONString();
return jsonArr.toString();
}
기본 배열 출력