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

时间:2014-06-24 13:36:10

标签: php html mysql

我正在尝试从mysql数据库中的表中的行中提取多个值。我希望选择器只显示描述,并在提交表单后,我希望能够从该行访问其他信息。我能够将所有item_types都放到一个数组中,但我不知道如何添加item_id。我不希望item_id显示在html选择器中。

我尝试了一些像array_push这样的东西。我能想到完成这件事的唯一方法就是在"值"中创建一个大字符串。提交表格后提取部分。

这是迄今为止的功能:

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>';
}

1 个答案:

答案 0 :(得分:0)

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

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>';
}

然后,只要您需要给定描述的id,就可以使用该表(数组)来获取它:

$mainDropdownLUT = array();
createDropdown($mainDropdownLUT);

var_dump($mainDropdownLUT['testCow']);
 -> 734

此外,如果您需要将其传递到另一个页面,可以将其序列化并添加到隐藏字段中。

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