2014-12-18 1 views
1

여러 선택을 쉼표로 구분 된 값으로 HTML 형식에서 값을 가져 오는 방법이 있습니까? 나에게 줄 것이다 위의 코드를 제출GET을 통한 다중 선택 형식

<form method="get" action="index.php"> 
<select multiple name="choice"> 
    <option value="1" selected>A</option> 
    <option value="2" selected>B</option> 
    <option value="3">C</option> 
    <option value="4">D</option> 
</select> 
<input type="submit" value="submit"/> 
</form> 

:

는 다음과 같은 예를 생각해

http://example.com/index.php?choice=1,2 

어떤 방식이 있나요 :

http://example.com/index.php?choice=1&choice=2 

내가이되고 싶습니다 이 작업을 수행?

+1

. 하지만 왜? – undefined

+0

@ Vohuman Wordpress + Woocommerce를 기반으로하는 내 상점은 이런 식으로 제품을 필터링하기위한 매개 변수를 사용하기 때문에. 위 예제는 작동하지 않습니다. Woocommerce가 필터를 처리하는 방식을 변경하는 것보다 이것을 변경하는 것이 더 쉬워 보였습니다. 자바 스크립트에서이를 수행하는 방법에 대한 예제를 제공해 주시겠습니까? – Anna

답변

1

그런 다음, POST로 양식을 제출 그것의 문자열을 자동으로 GET으로 다시 제출할 수 있습니다 당신은 자바 스크립트를 사용한다

<?php 
if (isset($_POST["choice"])) { 
    $post_choice = $_POST["choice"]; 
    $choice = $post_choice[0]; 
    if (count($post_choice) > 1) { 
     for ($i = 1; $i < count($post_choice); $i++) { 
      $choice .= "," . $post_choice[$i]; 
     } 
    } 
    ?> 

    <form id="form"> 
     <input type="hidden" name="choice" value="<?php print ($choice); ?>"> 
    </form> 

    <script>document.getElementById("form").submit();</script> 
    <?php 
} 

print ("GET choice: " . $_GET["choice"]); 
?> 

<form method="post"> 
    <select multiple name="choice[]"> 
     <option value="1" selected>A</option> 
     <option value="2" selected>B</option> 
     <option value="3">C</option> 
     <option value="4">D</option> 
    </select> 
    <input type="submit" value="submit"> 
</form>