exec_json() : XE에서 Ajax 요청(Request)을 하는 자바스크립트 함수(정보 변경 또는 정보 조회)

XE_ROOT/common/xml_handler.js에 선언되어 있습니다.

exec_json() 함수는 XE에서 ajax기능을 이용함에 있어 module, act를 잘 사용하기 위한 자바스크립트

exec_xml 보다 exec_json을 추천. 

exec_xml에서 특정 데이터를 받아올 때 오류가 나지만 exec_json은 그렇지 않다. 또한 exec_json이 사용법이 더 간단하다.

1

2

3

4

5

6

7

8

exec_json (module.act,

                params,

                callback_func

            );

  

module.act : 모듈명.action ( exec_json()은 자바스크립트 내부에서 요청만 할 뿐 실제적인 일은 해당 모듈의 액션(act)을 호출하여 처리 결과를 받는다.)

params : 전달할 변수 json 형식

callback_func : javascript callback 함수 (응답으로 받은 데이터를 처리할 자바스크립트 함수에게 값을 넘겨주는 함수 , javascript callback 함수 첫번째 인수에 모듈에서 $this->add로 보낸 변수를 받음)


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

 

그런다음 해당 버튼을 클릭 위 또는 아래로 해서 순서 변경을 하게 됩니다.


이번에는 exec_json()를 이용 해서 특정 게시물 데이타를 출력하는 스크립트 예제입니다.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

 


exec_json()를 이용한 doSelectDocView 스크립트를 이용하여 외부페이지에 게시물 데이타를 불러온 화면


sample2.png








참고로 XE_ROOT/common/xml_handler.js에 선언되어 있는 exec_json 스크립트 내용입니다. 


/**

    * @brief exec_json (exec_xml와 같은 용도)

    **/

    $.exec_json = window.exec_json = function(action, data, callback_sucess, callback_error){

        if(typeof(data) == 'undefined') data = {};

 

        action = action.split('.');

 

        if(action.length == 2) {

            // The cover can be disturbing if it consistently blinks (because ajax call usually takes very short time). So make it invisible for the 1st 0.5 sec and then make it visible.

            var timeoutId = $(".wfsr").data('timeout_id');

 

            if(timeoutId) clearTimeout(timeoutId);

 

            $(".wfsr").css('opacity', 0.0);

            $(".wfsr").data('timeout_id', setTimeout(function(){

                $(".wfsr").css('opacity', '');

            }, 1000));

 

            if(show_waiting_message) $(".wfsr").html(waiting_message).show();

 

            $.extend(data,{module:action[0],act:action[1]});

 

            if(typeof(xeVid)!='undefined') $.extend(data,{vid:xeVid});

 

            try {

                $.ajax({

                    type: "POST",

                    dataType: "json",

                    url: request_uri,

                    contentType: "application/json",

                    data: $.param(data),

                    success: function(data) {

                        $(".wfsr").hide().trigger('cancel_confirm');

                        if(data.error != '0' && data.error > -1000) {

                            if(data.error == -1 && data.message == 'msg_is_not_administrator') {

                                alert('You are not logged in as an administrator');

                                if($.isFunction(callback_error)) callback_error(data);

 

                                return;

                            } else {

                                alert(data.message);

                                if($.isFunction(callback_error)) callback_error(data);

 

                                return;

                            }

                        }

 

                        if($.isFunction(callback_sucess)) callback_sucess(data);

                    },

                    error: function(xhr, textStatus) {

                        $(".wfsr").hide();

 

                        var msg = '';

 

                        if (textStatus == 'parsererror') {

                            msg  = 'The result is not valid JSON :\n-------------------------------------\n';

 

                            if(xhr.responseText === "") return;

 

                            msg += xhr.responseText.replace(/<[^>]+>/g, '');

                        } else {

                            msg = textStatus;

                        }

 

                        try{

                            console.log(msg);

                        } catch(ee){}

                    }

                });

            } catch(e) {

                alert(e);

                return;

            }

        }

    };

공지사항 자동생성 자막

2018-10-22 16:06:41 자막 닫기
전체 관련글 전체관련글
  • **velopLife
    XMLHttpRequest (Ajax 애플리케이션은 XML/XSLT 대신 미리 정의된 HTML이나 일반 텍스트, JSON, JSON-RPC를 이용할 수 있다). 웹 브라우저에서 서버에 요청을 보내고 결과를 출력하는 과정은 전체 화면을...
    20181031신고
  • **이말랑이
    data: request 요청과 함께 보내지는 데이터 callback : get 또는 post가 완료된 후에 호출되는 함수 간단하게 연습삼아 로그인 Ajax로 구현해보기 로그인을 위한 정말 간단한 html 기본 <div...
    20181204신고
  • **ylin9088님의브로그브로그*_*
    궁금하면 위의 간단한 http 서버에서 createServer가 인자로 전달받은 함수를 http 요청에 이어지는 실행지점으로 사용한다는 점을 보도록 하자. Node.js가 자랑하는 고성능 비동기 프로그램을...
    20190221신고
  • **빵빵코더의 꿈꾸는 작업실
    이번 시간에는 자바스크립트 AJAX - 서버에 요청(request) 보내기에 대해 알아보겠습니다. XMLHttpRequest 객체는 서버와 데이터를 교환하는데 사용됩니다. 서버에 요청...
    20171208신고
  • **as
    표현하며 자바스크립트를 직접 사용할 수 있다. 만약 태그 내에서 스크립트를 사용하고... 존재하는데 문법은 거의 자바스크립트와 99% 동일하고 내부적으로 mixins라는 객체에 함수로...
    20190220신고
  • **웍스(causeworks)
    변경될 수 있는 동적인 UI 구현이 가능해졌습니다. AJAX의 장점 - 페이지 새로고침 없이 서버와 통신 - 서버 처리를 기다리지 않고, 비동기 요청이 가능하다. - 수신하는...
    20190320신고
  • **LUMULUS ㅣ SMART MARKETING FOR SMART SOLUTIONS
    AJAX / XMLHttpRequest Asynchronous JavaScript And XML AJAX 를 사용하는 이유/장점 페이지를 새로고침 할 필요 없이, 서버에 외부 데이터를 요청하고(request) 받고(receive)...
    20190318신고
  • ** 세상을 바꾼다
    4 헤더 만들기 –CSS3 와 자바스크립트로 디자인 스타일 정의하기 1.5 헤더 만들기 –CSS 로 디자인... 11 [오탈자 정보] 성공하는 프로그래밍 공부법 : 사람과 프로그래머 #7 (2) 2018.09.03 [오탈자 정보]...
    20190411신고
  • **ory Of ace-T
    이 정보가 모니터와 같은 출력 장치를 통해 사용자에게 나타나는 것이다. HTTP를 통해 전달되는 자료는 http:로 시작하는 URL (인터넷 주소)로 조회할 수 있다. 요청...
    20190128신고
  • **ice_k106님의 블로그
    위와 같이, src 속성에 상대 경로 또는 절대 경로를 입력하되, url_for 라는 jinja 함수를 사용해 경로를 지정해줘야만 한다. 위 예시는 static 디렉터리에 assets/js... 에 존재하는 자바스크립트...
    20181011신고
  • 83%남자
    17%여자
    1%10대
    12%20대
    29%30대
    32%40대
    20%50대
    6%60대
    통계정보는 댓글이 100개 이상 게시중일때 제공됩니다.
댓글 0