2017-03-13 2 views
2

URLパラメータに基づいてフォーム選択に複数の「選択済み」を出力する最適な方法は何ですか?私は、これらのパラメータ& carBrand = 1607191を持っているかもしれない、私のURLでPHPを使用したURLパラメータに基づいて複数のドロップダウンが選択されています

| = 1607185アキュラ& carbrand |アルファロメオ

しかし、私はURLを送信すると、選択の唯一のオプションは、第1です。そしてこのフォームのために、私は複数の車の選択を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 [] = 1607191 |アキュラ&carBrand [] = 1607185 | 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[]を参照してください?これがあなたが必要とするものです。

あなたのコードは次のように書くことができることを後:後でin_array関数としてエラーがスローされませんので、私は、デフォルト値のためarray()を使用

<?php $carBrand = !empty($_GET['carBrand']) ? $_GET['carBrand'] : 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> 
関連する問題