power-girl0-0

jQuery Ajax 본문

언어/Javascript

jQuery Ajax

power-girl0-0 2021. 2. 10. 22:59
728x90

 

 

생활코딩 웹브라우저 javascript를 참고하여 공부하였습니다.

스스로 공부한 것을 정리하고 복습하기 위한 목적으로 작성하였습니다.

( 출처 :  https://opentutorials.org/course/743inf.run/pBzy )


jQuery이용해서 Ajax를 사용하게 되면 많은 이점이 있는데 그 중의 하나가 크로스브라우징의 문제를 jQuery가 알아서 해결해준다는 것이다.


jQuery는 Ajax와 관련해서 많은 API를 제공한다. 

http://api.jquery.com/category/ajax/

 

 $.ajax 

http://api.jquery.com/jQuery.ajax/

 

 $.ajax의 문법 

jQuery.ajax( [settings ] )

setting는 Ajax 통신을 위한 옵션을 담고 있는 객체가 들어간다.

 

주요 옵션들은 아래와 같다.

  • data

    : 서버로 데이터를 전송할 때 이 옵션을 사용한다. 

  • dataType

    : 서버측에서 전송한 데이터를 어떤 형식의 데이터로 해석할 것인가를 지정한다.

    값으로 올 수 있는 것은 xml, json, script, html이다. 형식을 지정하지 않으면 jQuery가 알아서 판단한다.

  • success

    : 성공했을 때 호출할 콜백을 지정한다.

    Function( PlainObject data, String textStatus, jqXHR jqXHR )

  • type

    : 데이터를 전송하는 방법을 지정한다. get, post를 사용할 수 있다.


아래 예제는  Ajax 수업의 예제를 JQuery화한 것이다.

 

time.php

<?php
    $d1 = new DateTime;
    $d1->setTimezone(new DateTimezone("asia/seoul"));
    echo $d1->format('H:i:s');
?>

demo1.html 

<p>time : <span id="time"></span></p>
<input type="button" id="execute" value="execute" />
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
    $('#execute').click(function(){
        $.ajax({
            url:'./time.php',
            success:function(data){
                $('#time').append(data);
            }
        })
    })
</script>

XMLHttpRequest에 비해서 코드가 훨씬 간결해진 것을 확인할 수 있다.


POST 방식

POST 방식으로 통신을 할 때는 아래와 같이 처리한다.


time2.php

<?php
    $d1 = new DateTime;
    $d1->setTimezone(new DateTimezone($_POST['timezone']));
    echo $d1->format($_POST['format']);
?>

demo2.html

<p>time : <span id="time"></span></p>
<form>
    <select name="timezone">
        <option value="Asia/Seoul">asia/seoul</option>
        <option value="America/New_York">America/New_York</option>
    </select>
    <select name="format">
        <option value="Y-m-d H:i:s">Y-m-d H:i:s</option>
        <option value="Y-m-d">Y-m-d</option>
    </select>
</form>
<input type="button" id="execute" value="execute" />
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
    $('#execute').click(function(){
        $.ajax({
            url:'./time2.php',
            type:'post',
            data:$('form').serialize(),
            success:function(data){
                $('#time').text(data);
            }
        })
    })
</script>

아래 코드는 form 태그의 정보를 값의이름=값의내용&값 의 형식으로 바꿔준다.

data:$('form').serialize(),

 


JSON 처리

$.ajax를 이용해서 JSON을 처리한 예제이다.

 

time3.php

<?php
$timezones = ["Asia/Seoul", "America/New_York"];
echo json_encode($timezones);
?>

demo3.html

<p id="timezones"></p>
<input type="button" id="execute" value="execute" />
<script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
    $('#execute').click(function(){
        $.ajax({
            url:'./time3.php',
            dataType:'json',
            success:function(data){
                var str = '';
                for(var name in data){
                    str += '<li>'+data[name]+'</li>';
                }
                $('#timezones').html('<ul>'+str+'</ul>');
            }
        })
    })
</script>

 

 

 

728x90

'언어 > Javascript' 카테고리의 다른 글

ES6 : 문자열 표현  (0) 2021.02.15
Youtube 재생시간 구하기  (0) 2021.02.11
JSON  (0) 2021.02.10
Ajax (XMLHttpRequest)  (0) 2021.02.10
on API 사용법  (0) 2021.02.10
Comments