Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP根据URL参数选择多个下拉列表_Php_Html_Forms_Select_Multiple Select - Fatal编程技术网

使用PHP根据URL参数选择多个下拉列表

使用PHP根据URL参数选择多个下拉列表,php,html,forms,select,multiple-select,Php,Html,Forms,Select,Multiple Select,根据URL参数为我的表单选择输出多个“已选”的最佳方法是什么 在我的URL中,我可能有这些参数&carBrand=1607191 | Acura&carBrand=1607185 | Alpha-Romeo 但当我提交URL时,唯一选择的选项是第二个。对于这个表单,我需要通过url选择多辆车 <?php $carBrand = !empty( $_GET['carBrand'] ) ? $_GET['carBrand'] : ''; ?> <select na

根据URL参数为我的表单选择输出多个“已选”的最佳方法是什么

在我的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
这样的URL按以下方式处理:
carBrand=
的以下每个值都覆盖上一个值。要拥有
carBrand
值的数组,您需要在url中使用
[]
符号,即:

&carBrand[]=1607191 | Acura&carBrand[]=1607185 | Alpha
请参见每个
carBrand
之后的
[]
?这就是你需要的

之后,您的代码可以编写为:

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

你的url应该有
[]
符号:
&carBrand[]=1607191 | Acura&carBrand[]=1607185 | Alpha
在这种情况下,你可以在数组中使用
来检查值。你不能有多个carBrand参数,请尝试使用u_mudler已经提到的数组符号。看看这个答案
<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>