2017-03-13 7 views
2

URL 매개 변수를 기반으로 내 양식에 여러 개의 "선택한"을 출력하는 가장 좋은 방법은 무엇입니까? 내 URL에서PHP를 사용하는 URL 매개 변수를 기반으로 여러 개의 드롭 다운이 선택되었습니다.

나는 이러한 매개 변수가있을 수 있습니다 & carBrand = 1,607,191 | 알파 로미오

하지만 URL을 제출할 때 선택한 유일한 옵션은 두 번째입니다 | 아큐라 carbrand = 1607185 &. 그리고이 양식에 대한 여러 차 선택을 통해 URL을 선택해야합니다. &carBrand=1607191|Acura&carBrand=1607185|Alpha 같은

<?php $carBrand = !empty($_GET['carBrand']) ? $_GET['carBrand'] : ''; ?> 

    <select name="brands[]" id="selectBrands" class="form-control" multiple="multiple"> 
     <option value="1607191|Acura" <?php echo $carBrand == '1607191|Acura' ? 'selected' : ''; ?>>Acura</option> 
     <option value="1607185|Alpha Romeo" <?php echo $carBrand == '1607185|Alpha Romeo' ? 'selected' : ''; ?>>Alpha Romeo</option> 
     <option value="1607197|Aston Martin" <?php echo $carBrand == '1607197|Aston Martin' ? 'selected' : ''; ?>>Aston Martin</option> 
     <option value="1607188|Audi" <?php echo $carBrand == '1607188|Audi' ? 'selected' : ''; ?>>Audi</option> 
     <option value="1607200|BMW" <?php echo $carBrand == '1607200|BMW' ? 'selected' : ''; ?>>BMW</option> 
     <option value="1607194|Bentley" <?php echo $carBrand == '1607194|Bentley' ? 'selected' : ''; ?>>Bentley</option> 
     <option value="1607203|Bugatti" <?php echo $carBrand == '1607203|Bugatti' ? 'selected' : ''; ?>>Bugatti</option> 
     <option value="1607206|Buick" <?php echo $carBrand == '1607206|Buick' ? 'selected' : ''; ?>>Buick</option> 
    </select> 
+0

귀하의 URL이'[]'표기해야한다 :'& carBrand [] = 1,607,191 | 아큐라 & carBrand는 [] = 1,607,185이 | Alpha'이 경우 사용할 수있는'와 in_array를 '값을 확인하십시오. –

+0

여러 개의 carBrands 인수를 사용할 수 없으므로 이미 u_mudler에서 설명한대로 배열 표기법을 사용하십시오. 이 답변을 확인하십시오. http://stackoverflow.com/questions/6243051/how-to-pass-an-array-within-a-query-string – dinhokz

답변

2

URL은 다음과 같은 방법으로 처리됩니다 carBrand=각각 다음 값은 이전을 덮어 씁니다. carBrand 값의 배열을하려면 즉, URL에 [] 표기법을 사용해야합니다

&carBrand[]=1607191|Acura&carBrand[]=1607185|Alpha 

carBrand[]를 참조하십시오? 이것이 당신이 필요로하는 것입니다. 당신의 코드처럼 쓸 수있는 그 후

:

<?php $carBrand = !empty($_GET['carBrand']) ? $_GET['carBrand'] : array(); ?> 

로 나중에 in_array 기능은 오류가 발생하지 않도록 나는 기본 값 array()을 사용합니다.

그리고 당신의 <select> 코드는 다음과 같습니다

<select name="brands[]" id="selectBrands" class="form-control" multiple="multiple"> 
    <option value="1607191|Acura" <?php echo in_array('1607191|Acura', $carBrand) ? 'selected' : ''; ?>>Acura</option> 
    <option value="1607185|Alpha Romeo" <?php echo in_array('1607185|Alpha Romeo', $carBrand) ? 'selected' : ''; ?>>Alpha Romeo</option> 
    <!-- More options here --> 
</select>