PHP -将多个选择选项存储到数组中,并将ID作为数组键


PHP - Store multiple select option into array and us the ID as array key

我有多个选择的selectbox选项列表

<select multiple="MULTIPLE" size="20" name="facilities[]">
   <option id="idOne" value="Value One">Value One</option>
   <option id="idTwo" value="Value Two">Value Two</option>
   <option id="idThree" value="Value Three">Value Three</option>
</select>

我已经做了php代码,可以将值存储到我的数据库上的数组,但是…我现在想要的是,可以使用选项中的ID作为数组的键,所以当您存储数组时,将看起来像下面的示例

array('idOne'=>'Value One', 'idTwo'=>Value Two, 'idThree'=>'Value Three')

而不是array([0]=>'Value One', [1]=>Value Two, [2]=>'Value Three')(这是我现在得到的)。

任何帮助都将非常感激:)

对不起,我的英语不好。

根据定义,只有option标签的value将在POST中传递。这里有几个选项

首先,您需要知道另一端的值并将它们结合起来。这可能是更多的工作,但您总是会有一个选择值的列表。

  $vals = array('idOne'=>'Value One', 'idTwo'=>'Value Two', 'idThree'=>'Value Three');
  foreach($vals as $key => $row) {
       if(array_search($row, $_POST['facilities']) === false) unset($vals[$key]);
  }

第二种方法是使用JavaScript构建选中的text值列表并POST(通过隐藏字段或使用AJAX)。这样做风险更大,因为数据掌握在客户手中,但仍然是可行的。