테스트 사이트 - 개발 중인 베타 버전입니다

url 링크 문자열 반복제거 채택완료

가루눈 7년 전 조회 1,760

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

</p>

<p>$('#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의 반복제거

            }

        });</p>

<p>

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

답변 2개

채택된 답변
+20 포인트
7년 전

parameter 가 없는 경우 추가,

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

 

https://stackoverflow.com/a/6021027" target="_blank">https://stackoverflow.com/a/6021027

 

ex.

</p>

<p>..</p>

<p>  else {</p>

<p>    location.href = updateQueryStringParameter(location.href, cat, $(this).val());</p>

<p>  }</p>

<p>});</p>

<p> </p>

<p>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;

  }

}</p>

<p>

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

가루눈
7년 전
저 cat변수에 뭘 집어넣어야하나요?
트샷
7년 전
실수인 것 같습니다.
변수가 아닌 문자열 'cat' 으로 넣으면 될 것 같습니다.
location.href = updateQueryStringParameter(location.href, 'cat', $(this).val());
가루눈
7년 전
감사합니다 해결되었어요 ^^

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

크리티컬팀

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

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

 

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

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

 

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

가루눈
7년 전
url을 새로만든다는게 어떤식으로 만들어야하나요?

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

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

로그인