[JavaScript] AJAX 다루기

[JavaScript] AJAX 다루기 updated_at: 2023-03-13 09:00

[JQUERY] AJAX관련 정리

get, post 사용하기

아래는 id 가 dataarea 인곳에 source.html 파일을 로딩하는 것이다. 이후는 dataarea를 처리하여 보기 좋게 포맷을 한다. 단 상기는 고정으로 된 것이지만 보통 웹을 꾸밀때는 자료를 주고 받음으로서 다른 결과값을 유도한다.

load (다른 문서를 비동기식으로 불러오기)

참조 http://api.jquery.com/load/

 $(div).load('document.html');
 $("#dataarea").load("source.html", function(data) {
    
 }

get 사용하기

$.get("proc.php", {id:"userid", pass:"userpwd"}, function (data){ 
    console.log(data);
});

post 사용하기

$.post("proc.php", {name:"userid",pass:"userpwd"}, function (data){ 
    console.log(data); 
});

Get과 Post의 모양은 글자모양이 다른 것을 제외하고는 똑 같다.

하기처럼 넘길 필드가 많을 경우 serialize를 사용

function getVocabularyList(init){ 
    $.post("sample.php?"+$("#formid").serialize(), {}, function (data){ }); 
} 

function getVocabularyList(init){ 
    $.post("sample.php, $("#formid").serialize(), function (data){ }); 
} 
// 혹은 아래처럼 
$.post("/admin/thereview/wp_ajax_list", {ajax:"true", syear:syear, sweek:sweek}, function (data){ 
    $('#WP_innerHTML').html(data); 
});

json으로 데이타 받은후 처리하기

<script>
$.getJSON("${pageContext.request.contextPath}/getJson.do",
    {
        ln:"50",
        sn:"1",
    },
    function(data) {
        $.each(data.result, function(i,item){
        console.log(item.name);
        });
    });
</script>

getJson 을 Post 방식으로 사용하기

postJSON이라는 별도의 함수를 만든후 사용하게 된다.

$.postJSON = function(url, data, func) { 
    $.post(url+(url.indexOf("?") == -1 ? "?" : "&")+"callback=?", data, func, "json"); 
}  

아래는 postJSON을 사용한 샘플 소스

<form name="testFrm">
    <input type="hidden" name="test1" value="111" />
    <input type="hidden" name="test2" value="222" />
    <input type="hidden" name="test3" value="333" />
</form>      

<script type="text/javascript">
    function getData(){
        var paramData = $("#testFrm").serialize();   
        $.postJSON(url, paramData, function (data) { 
            $.each(data, function(index,jsonData){
                //jsonData의 값을 처리.~~
            });
        });
    }
</script>

AJAX

"$('a.ajax-popover').popover({
    html: true,
    trigger: 'hover',
    placement: 'auto',
    title: $(this).attr('rel'),
    delay: { show: 200, hide: 1800 },
    content: function() {
    var cid = $(this).attr('rev');
    var div_id = ""tmp-id-"" + $.now();
    $.ajax({
        url: '/clubs/'+cid,
        cache: true,
        type: 'GET',
        dataType: ""json"",
        success: function(data) {
            if (data.success) {
                var content = data.title + data.content;
                $('#'+div_id).html(content);
            }
        }
    });
    return '<div id=""'+div_id+'"">로딩중...</div>';
    }
});

jquery로 파일 다운로드 받기

아래는 제가 사용하는 간단한 소스입니다.

function ajaxdown(updir, gid, bid, tid){ 
    var url = "/board/main/filedownload/"+gid+"/"+bid+"/"+tid; 
    var inputs ='<input type="hidden" name="filename" value="'+ updir +'" />'; 
    jQuery('<form action="'+ url +'" method="post">'+inputs+'</form>')
    .appendTo('body').submit().remove();
}
<script>
<!--
function getCategory(v, step) {
	if(step == 1) $(\"#Category2\").removeOption(/./);
	else if(step == 2) $(\"#Category3\").removeOption(/./);
		$.ajax({
		
			type: \"GET\",
			url: \"./product/search_category.php\",
			data: \"value=\"+v.value+\"&step=\"+step,//특정변수값을 주어서 결과를 받을때
			dataType: \"xml\",
			success: function(xml) {
				$(xml).find(\'channel\').each(function(){
					var cat_no = $(this).find(\'cat_no\').text();
					var cat_name = $(this).find(\'cat_name\').text();
					if(step == 1) $(\"#Category2\").addOption(cat_no, cat_name, false);
					else if(step == 2) $(\"#Category3\").addOption(cat_no, cat_name, false);	
					
				}); //close each(
			}//close function(xml)
		}); //close $.ajax(

} //close $(
//-->
</script>
평점을 남겨주세요
평점 : 5.0
총 투표수 : 1

질문 및 답글