lmh0412
47
2018-01-12 22:09:04 작성 2018-01-12 22:14:57 수정됨
2
340

autocomplete 질문 드립니다 ㅠ.ㅠ


안녕하세요? 제이쿼리 autocomplete 질문 드립니다.

새로 재취업한 회사에서 유지보수 업무를 하는데 도저히 몰라서 도움을 요청하고자 합니다.

현재 text 박스에 문자를 입력하면 데이터베이스에 있는 값들이 떠서 선택을 하면 아래 텍스트 박스에

선택한 데이터의 값(두께,폭,길이,중량)들을 뿌려 주고 있습니다.

그런데 업체에서 데이터베이스에 입력되어 있지 않은 데이터는 텍스트 박스에 입력하면 제품코드 값의 기본값들을 아래 텍스트 박스에 뿌려 달라고 합니다.

아래는 자동완성 뿌려주는 소스 부분인데 저기서 데이터값들이 없을 시 제품코드 기본값으로 나오게 해야 할지 막막해서 조언 좀 듣고자 합니다.

제이쿼리 autocomplete 속성값을 검색해서 보고 해봐도 실력이 낮아 속만 까맣게 타고 있습니다.

스프링 + 마이마티스로 되어 있습니다. 


정리 : 자동완성 선택하면 선택한 값을 가져오고, 자동완성에 없는 데이터를 입력하면 기본으로 저장되어 있는 값들을 저장하게 해야 합니다. if 로 해보려는데 잘 몰라서 안되고 있는 상황 입니다.

아래 소스는 제이쿼리 autocomplete 로 자동완성 구현해 있는 소스 부분 입니다.


majax({

        type: "GET",

        url: '/api/system/reprod/list?wb_idx=' + wb_idx,

        contentType: 'application/json',

        dataType:"json",

        statusCode: {

            200: function (response) {

                var tmp3 = response.map(function(val) {

                    return { value: val.rp_idx, data: val }

                })

                               

                $('.roll_1').each(function() {

                    $(this).autocomplete({

                        source: tmp3,

                        select: function(evt, ui) {

                            var inputs = $(this).attr("data-target");             

                            $("input").each(function(){

                                if($(this).attr("data-target") == inputs){

                                    switch($(this).attr("name")){

                                        case 'thickness_1' :

                                            $(this).val(ui.item.data.thickness);

                                            break;

                                        case 'width_1' :

                                            $(this).val(ui.item.data.width);

                                            break;

                                        case 'length_1' :

                                            $(this).val(ui.item.data.length);

                                            break;

                                        case 'weight_1' :

                                            $(this).val(ui.item.data.weight);

                                            break;

                                    }

                                }

                            })                                                      

                        },


0
0
  • 답변 2

  • 널포인터
    156
    2018-01-13 01:00:04

    위의 코드에서 수정하지 말고

    /api/system/reprod/list?wb_idx= 처리하는 Controller 찾아서

    그기서 if 조건 넣으면 될 것 같습니다.


    ?wb_idx= 파라미터가  text 박스에 입력하는 문자이면

    Controller 에서

    if(문자가 db에 있을 경우) 기존값

    else(문자가 db에 없을 경우) 기본값

    리턴


    ?wb_idx= 파라미터가  text 박스에 입력하는 문자에 대응하는 키값일 경우

    /list?wb_idx=0 으로 넘기고

    Controller 에서

    if(wb_idx가 0이 아닐경우) 기존값

    else(wb_idx가 0일 경우) 기본값

    리턴


    이렇게 하면 되지 않을까요?





    0
  • lmh0412
    47
    2018-01-13 12:54:15
    널포인터님 조언 정말 감사드립니다. 말씀해주신대로 고민하고 분석해봐서 다시 해보겠습니다. 정말 정말 조언 해주셔서 다시 한번 감사드립니다 _ _)
    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.