채택완료

url 링크 문자열 반복제거

2018-02-26 (월) 15:02:55 1,912

제가 어설프게나마 분류의 분류 기능을 구현했는데 링크를 옮겨갈때 마다 cat변수가 계속쌓이네요 한번만 나타나게 할수 없을까요

Copy
$('#selectbox').on('change', function(e) {
            
            console.log($(this).val());
            var locat = '&cat=' + $(this).val();
            if($(this).val()=='전체'){
                location.href = '<?php echo $category_href; ?>';
            } else {
                location.href = location.search + locat;
                // 정규식이용해서 cat의 반복제거
            }
        });

3556658172_1519624961.7641.png

|

답변 2개 / 댓글 4개

채택된 답변
+20 포인트

parameter 가 없는 경우 추가,

parameter 가 있는 경우 업데이트 하는 사용자 함수를 이용하는 방법입니다. 

https://stackoverflow.com/a/6021027

ex.

Copy
..

  else {

    location.href = updateQueryStringParameter(location.href, cat, $(this).val());

  }

});

 

function updateQueryStringParameter(uri, key, value) {
  var re = new RegExp("([?&])" + key + "=.*?(&|$)", "i");
  var separator = uri.indexOf('?') !== -1 ? "&" : "?";
  if (uri.match(re)) {
    return uri.replace(re, '$1' + key + "=" + value + '$2');
  }
  else {
    return uri + separator + key + "=" + value;
  }
}

답변에 대한 댓글 3개

저 cat변수에 뭘 집어넣어야하나요?
실수인 것 같습니다.
변수가 아닌 문자열 'cat' 으로 넣으면 될 것 같습니다.
location.href = updateQueryStringParameter(location.href, 'cat', $(this).val());
감사합니다 해결되었어요 ^^
2018-02-26 (월) 15:30:58

// 정규식이용해서 cat의 반복제거

위 주석 아래에 query들을 파싱해서 url을 다시 만들어보는건 어떨까요?

https://code.i-harness.com/ko/q/470ecb
위 링크의 내용을 참고하셔서 url Query를 파싱한 다음 ,

URL을 새로 만드시는건 어떨지요?

위 링크에서 getUrlVars()이 포인트네요^^

답변에 대한 댓글 1개

url을 새로만든다는게 어떤식으로 만들어야하나요?

답변을 작성하려면 로그인이 필요합니다.