我从MySQL加载30000个值并加载下拉选择。加载所有值后,它可以正常工作,但填充下拉列表需要很长时间。我做错了还是应该使用自动填充等其他方式?
由于
HTML code:
<div class="control">
<label for="options" class="short">Fornecedor</label>
<select id="fornecedor" name="fnd[]" multiple="multiple" class="short">
<?php
$rows = getFornecedores($db);
foreach($rows as $row): ?>
<option value="<?php echo html_escape($row['idfornecedor']) ?>"><?php echo html_escape($row['nome']) ?></option>
<?php endforeach; ?>
</select>
</div>
PHP函数:
function getFornecedores($db){
$query = "
SELECT
idfornecedor, nome
FROM
fornecedor
ORDER BY
nome
";
try
{
$stmt = $db->prepare($query);
$stmt->execute();
}
catch(PDOException $ex)
{
die("Failed to run query: " . $ex->getMessage());
}
$rows = $stmt->fetchAll();
return $rows;
}
答案 0 :(得分:3)
将30K元素加载到下拉列表中对用户来说并没有多大意义。你真的希望用户在这样的盒子里找到任何东西吗?尝试提供一些提示或使用自动完成功能。