채택완료

고수님들 &option= 이것을 지우고싶어요

2023-06-26 (월) 20:35:08 3,013

아래 라디오버튼을 누르면 기존 주소 끝에 A, B, C, 주소가 뭍는데 &option= 이것도 따라 붙습니다.

기존주소를 건드리지말고 끝에 A, B, C, 이것만 붙을 수 는 없나요?

Copy
<input type="radio" name="option" value="A" id="optionA" <?php if ($selectedOption === "A") echo "checked"; ?>>
<label for="optionA">A</label>
<input type="radio" name="option" value="B" id="optionB" <?php if ($selectedOption === "B") echo "checked"; ?>>
<label for="optionB">B</label>
<input type="radio" name="option" value="C" id="optionC" <?php if ($selectedOption === "C") echo "checked"; ?>>
<label for="optionC">C</label>

<script>
  const options = document.getElementsByName("option");
  options.forEach(function(option) {
    option.addEventListener("change", function() {
      const selectedValue = this.value;
      if (selectedValue !== "") {
        const baseUrl = window.location.href.split("?")[0];
        const searchParams = new URLSearchParams(window.location.search);
        searchParams.set("option", selectedValue);
        const newUrl = baseUrl + "?" + searchParams.toString();
        window.location.href = newUrl;
      }
    });
  });
</script>

답변 5개 / 댓글 1개

채택된 답변
+20 포인트
2023-06-27 (화) 07:28:40

작업하시는 페이지가 어디인가요?

option.addEventListener("change", 

  change보다는 click이 나아 보입니다.

현재 페이지를 알면

window.location.href를

Php로 지정하고 끝에 A~C만 붙여 줄 수 있습니다.

Copy
<?php
$selectedOption = isset($_REQUEST['stx']) == true ? $_REQUEST['stx'] : '';
?> 
<input type="radio" name="option" value="A" id="optionA" <?php if ($selectedOption === "A") echo "checked"; ?>>
<label for="optionA">A</label>
<input type="radio" name="option" value="B" id="optionB" <?php if ($selectedOption === "B") echo "checked"; ?>>
<label for="optionB">B</label>
<input type="radio" name="option" value="C" id="optionC" <?php if ($selectedOption === "C") echo "checked"; ?>>
<label for="optionC">C</label>
<script>
  const options = document.getElementsByName("option");
  options.forEach(function(option) {
    option.addEventListener("change", function() {
      const selectedValue = this.value;
      if (selectedValue !== "") {
        const baseUrl = window.location.href.split("?")[0];
        const searchParams = new URLSearchParams(window.location.search);
        // searchParams.set("option", selectedValue);
        searchParams.set("stx", selectedValue);
        const newUrl = baseUrl + "?" + searchParams.toString();
        window.location.href = newUrl;
      }
    });
  });
</script>

주소에 stx= <=== 이게 마지막 나오는 것이 맞다면 script내용 모두 삭제하고 다음 코드만 넣으세요

location.href = location.href +$('input[name=option]:checked').val();

Copy
<input type="radio" name="option" value="A" id="optionA" >
<label for="optionA">A</label>
<input type="radio" name="option" value="B" id="optionB">
<label for="optionB">B</label>
<input type="radio" name="option" value="C" id="optionC">
<label for="optionC">C</label>
<script>
  const options = document.getElementsByName("option");
  options.forEach(function(option) {
    option.addEventListener("change", function() {
      const selectedValue = this.value;
      if (selectedValue !== "") {
        const baseUrl = window.location.href.split("?")[0];
        const searchParams = new URLSearchParams(window.location.search);
        const newUrl = baseUrl + "?" + searchParams.toString()+selectedValue.toString();
        window.location.href = newUrl;
      }
    });
  });
</script>

으로 하시면 됩니다.

Copy
<input type="radio" name="option" value="A" id="optionA" >
<label for="optionA">A</label>
<input type="radio" name="option" value="B" id="optionB">
<label for="optionB">B</label>
<input type="radio" name="option" value="C" id="optionC">
<label for="optionC">C</label>
<script>
  const options = document.getElementsByName("option");
  options.forEach(function(option) {
    option.addEventListener("change", function() {
      const selectedValue = this.value;
      if (selectedValue !== "") {
        const baseUrl = window.location.href.split("?")[0];
        const searchParams = new URLSearchParams(window.location.search);
        const newUrl = baseUrl + "?" + selectedValue.toString();
        window.location.href = newUrl;
      }
    });
  });
</script>

이렇게 하시면 됩니다.

답변에 대한 댓글 1개

2023-06-26 (월) 20:58:41
/bbs/board.php?bo_table=2000&sca=&sop=and&sfl=wr_25&stx=

wr_25&stx= 여기 에 붙으면되요

wr_25&stx=A

wr_25&stx=B

wr_25&stx=C 이런식이요

위에 소스로하니

bbs/board.php?A

bbs/board.php?B

이런식으로 됩니다.

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