0

MySQL から 30000 個の値を読み込み、ドロップダウン選択で読み込みます。すべての値を読み込んだ後は問題なく動作しますが、ドロップダウンを埋めるのに時間がかかります。私はそれを間違っていますか、オートコンプリートのような別の方法を使用する必要がありますか?

ありがとう

HTML コード:

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

1 に答える 1

3

ドロップダウンに 30K の要素をロードすることは、ユーザーにとって意味がありません。ユーザーがそのようなボックスで何かを見つけることを本当に期待していますか? ヒントを与えるか、オートコンプリート機能を使用してください。

于 2013-06-18T10:53:11.990 に答える