根据 URL 参数为我的表单选择输出多个“选定”的最佳方法是什么?
在我的网址中,我可能有这些参数 &carBrand=1607191|Acura&carbrand=1607185|Alpha Romeo
但是当我提交 URL 时,唯一选择的选项是第二个。对于此表单,我需要通过 url 选择多个汽车选择。
<?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>
最佳答案
网址如&carBrand=1607191|Acura&carBrand=1607185|Alpha
按以下方式处理: carBrand=
的每个以下值覆盖前一个。拥有 carBrand
数组值,您需要使用 []
网址中的符号,即:
&carBrand[]=1607191|Acura&carBrand[]=1607185|Alpha
参见[]
每次之后 carBrand
?这就是您所需要的。
之后你的代码可以这样写:
<?php $carBrand = !empty( $_GET['carBrand'] ) ? $_GET['carBrand'] : array(); ?>
我使用array()
默认值如下 in_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>
关于php - 使用 PHP 基于 URL 参数选择多个下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42773169/