使用html/php多重选择器从数据库中获取多个值

使用html/php多重选择器从数据库中获取多个值,php,html,mysql,Php,Html,Mysql,我试图从mysql数据库表中的一行中提取多个值。我希望选择器仅显示描述,并且在提交表单后,我希望能够从该行访问其他信息。我能够将所有项目类型输出到一个数组中,但我不确定如何添加项目id。我不希望项目id显示在html选择器中 我试过一些方法,比如推。我能想到的唯一方法是在表单提交后生成一个大字符串并提取部分 以下是迄今为止的功能: function createDropdown() { echo '<select multiple name="items[]">';

我试图从mysql数据库表中的一行中提取多个值。我希望选择器仅显示描述,并且在提交表单后,我希望能够从该行访问其他信息。我能够将所有项目类型输出到一个数组中,但我不确定如何添加项目id。我不希望项目id显示在html选择器中

我试过一些方法,比如推。我能想到的唯一方法是在表单提交后生成一个大字符串并提取部分

以下是迄今为止的功能:

function createDropdown() {
    echo '<select multiple name="items[]">';
        try {
            $items = mysql_query("SELECT item_id,item_type FROM items");
            while ($row = mysql_fetch_assoc($items)) {
                echo '<option value="'.$row['item_type'].'"';
                echo '>'. $row['item_type'] . '</option>'."\n";
            }
        }
        catch(PDOException $e) {
            echo 'No results';
        }
echo '</select>';
}

嗯,您可以在创建下拉列表时尝试生成查找表:

function createDropdown(&$ddlLookup) {
    echo '<select multiple name="items[]">';
        try {
            $items = mysql_query("SELECT item_id,item_type FROM items");
            while ($row = mysql_fetch_assoc($items)) {
                echo '<option value="'.$row['item_type'].'"';
                echo '>'. $row['item_type'] . '</option>'."\n";
                $ddlLookup[$item_type] = $item_id;
            }
        }
        catch(PDOException $e) {
            echo 'No results';
        }
echo '</select>';
}
此外,如果需要将其传递到另一个页面,则可以将其序列化并添加到隐藏字段中

 $mainDropdownLUT = serialize($mainDropdownLUT);
   "<input type="hidden" value =\"$mainDropdownLUT\">"
   -------------------------**OTHER PAGE **--------------
    $mainDropdownLUT = unserialize($mainDropdownLUT);

您正在混合MySQL API,但它们不会混合。mysql_query+catchPDOException$e=没有爱。有些东西告诉我,您可能正在使用PDO连接,但在看不到完整代码时很难说。但是,这个PDOException与mysql不兼容。我使用mysql_connect连接到数据库,使用$_SERVER['PHP_SELF']进行表单操作。在'value'中的一个大字符串和提交后提取是一个选项,或者您可以编写一组隐藏的表单输入,而不必提取。请举例说明您希望在提交表单时传递的所有信息,以便我们推荐实现此目的的方法。除非我有误解,否则您希望为所选的每个“项目类型”返回项目id。然后只需将“选项值”设置为[item_id]”。“选项值”是我返回的值,而不是看到的值。所看到的是显示的结尾项与文本之间的文本。i、 e.do:'
 $mainDropdownLUT = serialize($mainDropdownLUT);
   "<input type="hidden" value =\"$mainDropdownLUT\">"
   -------------------------**OTHER PAGE **--------------
    $mainDropdownLUT = unserialize($mainDropdownLUT);