반응형

여태 $ajax, $post를 통해 다양한 작업들을 해왔지만

근자에 몇몇 코드를 새로 보고 새로운 방식을 배웠다

뭐랄까 뭔가 체계적? 합리적이랄까

여태까지 나는 뭐 버튼을 누르면 업로드하시겠습니까? 수정하시겠습니까? 이런 메세지와 함께

확인시 쿼리 실행 이런느낌이었는데

이번에 본 코드는 과정을 한단계 추가해서 갖춰저있는 느낌? 을 주는 방식이었다

임시테이블을 하나 추가해서 쿼리 한줄당 결과를 보여주는 페이지를 추가하는 느낌인데

예로 10개의 쿼리가 실행되는 파일이나, 버튼을 누르면

일단 임시테이블에 등록한다

그리고 리스트를 쫙 보여주고 이제 실제 등록하는 버튼을 두어 쿼리를 진짜실행한다.

그리고 줄마다 쿼리실행결과를 보여준다 

성공, 실패, 오류 등등

그리고 오류가나면 쿼리를 롤백시킨다

어떻게보면 한단계 과정이 추가되는만큼 작업이 번거롭다고 생각될수는있지만

개발 특성상 개발자가 사용안하는 경우가 많기때문에

개발자가아닌 다른 직원이나 관리자가 사용했을때는 훨씬 직관적이고 문제해결에 도움이되는 방식이라 느꼈다..

흠 앞으로는 요런식으로 작업해야겠다.

정리

1. 기존 db 구성에 임시테이블 추가

2. 임시테이블에 먼저업로드 후 실제 등록 버튼 추가

3. 실제 등록 처리시 1줄씩 쿼리 결과 출력 - $().load, settimeout으로 다음쿼리실행 등의 방식사용 

4. 쿼리결과에 오류가 발생시 원인 메세지 출력해주고 전체 쿼리 롤백처리

728x90
반응형
반응형

그누보드 기반 게시판을 활용해서 페이지를 만드는데

wr_id를 물고 데이터를 대량으로 업로드하는 요청이 있었다

천단위가 넘어가서 엑셀로 업로드를 시켜야했고

게시글 아이디인 wr_id를 물고 다른 db에 일괄 업로드시키는 방식으로 진행

문제는 게시판 write 페이지에서 submit 시킬때 write_update에서 동시에 처리하려니

엑셀업로드가 안되는것

또 업로드를 나누자니 좀 직관적이지 않아보였다 뭔가 말로 설명하기어렵군

하여튼 ajax로 파일을 보내서 따로 엑셀업로드시키고 나머지는 submit 시키기로했다

var form = $('#fcowork')[0];
var formData = new FormData(form);
var xls_wr_id = '';

        formData.append("files", $("#upload")[0].files[0]);
        formData.append("xls_wr_id", xls_wr_id);

        $.ajax({
            type: "POST",
            enctype: 'multipart/form-data',
            processData: false,
            contentType: false,
            data:formData,
            url:'testset.php',
            success: function(data) {
                console.log(data);

            }
        })

이런 코드가 되었고 기존 ajax할때와 다른점은~
entype을 작성해주고 data를 append 해서 따로 보냈다
잘 작동해서 다행이다 일단은?

728x90
반응형
반응형

이번에 작업한것은 메일시스템이었다

기본 그누보드에 달려있는 메일 함수는 뭔가 오류가많이 나왔다

스팸으로 들어간다던가 아예 차단을 해버려서 전송이 안된다던가

그래서 새로운 메일시스템을 입히는 과정에서

php로 구성되어있는 코드를

메일 api 리턴받고 그러면서 ajax처럼 써야 되는 상황이나와서

이것저것 써보다가 완료했다

일단 php 에서

curl_setopt 란 기능을 이용하는것이 주요 요소였고

구성은

$_data = array(
'fname' => $fname, // 발신자 이름
'fmail' => $fmail, // 발신자 이메일
'to' => $to, // 수신자 이메일
'subject' => $subject, // 제목
'content' => $content, // 내용
);

    $ch1 = curl_init();
    curl_setopt($ch1, CURLOPT_URL, G5_BBS_URL.'/testetstest.php');
    curl_setopt($ch1, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch1, CURLOPT_HEADER, FALSE);
    curl_setopt($ch1, CURLOPT_POST, 1);

    curl_setopt($ch1, CURLOPT_POSTFIELDS, http_build_query($_data));

    curl_setopt($ch1, CURLOPT_POSTFIELDSIZE, 0);
    curl_setopt($ch1, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch1, CURLOPT_SSLVERSION,3);
    $response = curl_exec($ch1);

    curl_close($ch1);

    return $_data;

    이런느낌으로 함수를 만들어서 쏜다음
    해당 페이지로가서 $_POST 로 받아서 따따따 넣어주면 되었다
    생각보다 간단하게 끝나고 만족스
728x90
반응형
반응형

자바스크립트 메모

ajax로 구해온 정보를 다시 페이지에 삽입하려고할때

위치를 정해서 집어넣으면 편한데

이게 갯수가 변동할수있다거나

줄이 바뀌는,

이번경우에는 품목을 추가 삭제할수있는 변동성이 있는 구조여서

거기다 맨 하단에는 합계를 넣어줘야했기에

맨하단 윗칸에 넣어야했다

뭐 테이블구조로 작업을 해둬서 약간 애매하긴했는데

그래도 원래 명령어가 다 있어서

수월하게 풀렸다

 - after()

 지정한 요소 뒤에 새로운 요소를 삽입 

 A.after(B) - A 뒤에 B를 추가

 - insertAfter()

 지정한 요소 뒤에 새로운 요소를 삽입

 A.insertAfter(B - B 뒤에 A 를 추가

 - before()

 지정한 요소 시작 부분에 내용을 삽입 

 A.berfore(B) - A 앞에 B를 추가

 - insertBefore()

 지정한 요소 시작 부분에 내용을 삽입

 A.insertBefore(B) - B 앞에 A 를 추가

728x90
반응형
반응형

ajax 기본적으로 틀 할때

$('[name="ag_id"]').on('change', function() {

        ag_id = $(this).val();

            $.ajax({
                type: "POST",
                data: {ag_id:ag_id},
                url: '<?php echo G5_BBS_URL?>/ajax.agency_info.php',
                success: function(data) {

                    $("span.ag_ceo").text(data.data['ag_ceo']);
                    $("span.ag_ex").text(data.data['ag_ex']);

                }
            }); 

    })
728x90
반응형

'프로그래밍 > javascript' 카테고리의 다른 글

input 배열의 모든값 합 구하기  (0) 2020.07.10
카카오 지도 기본생성  (0) 2020.07.10
slick 슬라이더  (0) 2020.07.09
회원가입 validate.js 추가  (0) 2020.07.09
alert문 toastr 변경  (0) 2020.07.09

+ Recent posts