Php 如何在数组中存储从下拉框中选择的项目的id?
我需要在数组中存储从下拉框中选择的所有项目。我现在只有一个带有选择下拉列表的表单。因此,每次我从列表中选择一个项目并提交表单时,它都会覆盖上一个项目 我如何使它像每次提交时一样工作?id将被存储,以便我可以显示所有选定的项目Php 如何在数组中存储从下拉框中选择的项目的id?,php,html,Php,Html,我需要在数组中存储从下拉框中选择的所有项目。我现在只有一个带有选择下拉列表的表单。因此,每次我从列表中选择一个项目并提交表单时,它都会覆盖上一个项目 我如何使它像每次提交时一样工作?id将被存储,以便我可以显示所有选定的项目 //this is the select dropdown for addon item <select name="addon"> <?php mysql_sel
//this is the select dropdown for addon item
<select name="addon">
<?php
mysql_select_db($database_bumi_conn, $bumi_conn);
$query="SELECT * FROM tbl_addons WHERE status=1";
$result=mysql_query($query)or die(mysql_error());
while($row=mysql_fetch_array($result))
{
$a_id=$row['addOns_id'];
$a=$row['addOns'];
?>
<option value="<?php echo $a_id?>"><?php echo $a;?></option>
<?php
}
?>
</select>
//And this is how I store the id
$addon_id=$_POST['addon'];
//edited with session
$_SESSION['option']=array();
$_SESSION['option'][$addon_id]=array('qty'=>$qty,'date_1'=>$date_1,'date_2'=>$date_2);
print_r($_SESSION['option']);
foreach($_SESSION['option'] as $option=>$value)
{
echo $option.'=>';
foreach($value as $val)
{
echo $val;
}
}
//这是加载项的选择下拉列表
忽略您使用的是一个不推荐使用的、本质上不安全且未维护的扩展,您需要在
元素上使用multiple
属性,并让PHP知道它将通过在元素名称上使用[]
后缀接收一个值数组。总而言之
<select name="addon[]" multiple>
<?php foreach($collection as $val => $label) : ?>
<option value="<?= htmlspecialchars($val) ?>"><?= htmlspecialchars($label) ?></option>
<?php endforeach ?>
</select>
您可以使用会话变量来存储所有ID:
session_start();
// Rest of your code here
// $addon_id=$_POST['addon']; Becomes :
if (!in_array($_POST['addon'], $_SESSION['addons']))
$_SESSION['addons'][] = $_POST['addon'];
编辑:不确定是否使用会话进行编辑。你每次都在重置$_会话['option'],丢失以前的加载项id值而不是逐个选择,请执行多选下拉菜单选择多个选项,并将其命名为addon[]
@Phil,我没有选择使用PDO的选项,尽管我更喜欢它,因为我的老板希望它是mysql.@Gautam3164必须逐个选择,因为每件商品都有日期取货和退货。@veronicageorge这毫无意义。你的老板是个白痴吗?谢谢,这很有效。我正在检查我哪里出了问题。再次感谢