POST 전송 (jQuery), POST 이동, POST 새창

2018. 4. 13. 14:53Javascript/Javascript+jQuery

반응형

>> POST 전송, 결과값 리턴 (jQuery)
function post_s(href, parm, del) {
  if (!del || confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) { 
    $.post(href, parm, function(req) {
      document\.write(req);
    });
  }
}


// 예제

... onclick="post_s('경로', {'parm1':'val1','parm2':'val2'}, true);" ...

리턴값으로 document.location.replace('경로'); 등이 오면 되겠다. 3번째 요소는 삭제명령을 위한 것.

 


>> POST 이동
function post_goto(url, parm, target) {
  var f = document.createElement('form');

 

  var objs, value;
  for (var key in parm) {
    value = parm[key];
    objs = document.createElement('input');
    objs.setAttribute('type', 'hidden');
    objs.setAttribute('name', key);
    objs.setAttribute('value', value);
    f.appendChild(objs);
  }
        
  if (target)
    f.setAttribute('target', target);


  f.setAttribute('method', 'post');
  f.setAttribute('action', url);
  document.body.appendChild(f);
  f.submit();
}


// 예제

... onclick="post_goto('경로', {'parm1':'val1','parm2':'val2'}); return false;" ...

return false 를 넣지 않으면 IE6 에서 동작 안함. 아마도 버그?



>> POST 창
function post_win(name, url, parm, opt) {
  var temp_win = window.open('', name, opt);
  post_goto(url, parm, name);

}


// 예제

- 폼(form)이 이미 존재하는 경우 {

  var f = document.form;
  var win = window.open('', '네임', '옵션');

  f.target = '네임';
  f.action = '경로'
  f.submit();

}


- 그렇지 않은 경우는 위 함수를 이용한다. {

... onclick="post_win('네임', '경로', {'parm1':'val1','parm2':'val2'}, '옵션');" ...

}



출처: http://www.tested.co.kr/board/Study/view/wr_id/24




반응형