簡體   English   中英

將自動完成應用於動態生成的文本框以及數據庫中的數據

[英]Apply autocomplete to dynamically generated textboxes with data from database

關於我的查詢,我在stackoverflow上遇到了很多問題,但是無法將它們應用到我的問題中。

因此,我在這里給出了我一直在使用的文件。

我成功地將自動完成功能與靜態文本框一起使用。 我從數據庫中獲取數據。 但是,我無法弄清楚如何為動態生成的文本框做到這一點。 我希望為包含數據庫數據的動態生成的文本框實現自動完成功能

這是我的文件:

的index.php

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
   <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
   <title>Auto Complete Input box</title>
   <link rel="stylesheet" type="text/css" href="jquery.autocomplete.css" />
  <script type="text/javascript" src="jquery.js"></script>
   <script type="text/javascript" src="jquery.autocomplete.js"></script>
    <script>
     $(document).ready(function(){
    $("#name").autocomplete("autocomplete.php", {
    selectFirst: true
});
 });
 </script>

  <script>
   function addForm(){
  $("#forms").append(
    "<form><input type ='text' name='winner' id='winner'><br/></form>"
   );
 }
  </script>
 </head>

  <body>
  <label>Name:</label>
   <input name="name" type="text" id="name" size="20"/>
   <input type="button" name="addmore" id="addmore" value="Add More Winners" onclick="addForm();"/>
<div id = "dyanamic"></div>
 </body>
 </html>

autocomplete.php

  <?php
require 'config.php';
$q=$_GET['q'];
$my_data=mysql_real_escape_string($q);
//$mysqli=mysql_connect('localhost','root','','emp_db') or die("Database Error");
$sql="SELECT name FROM employee WHERE name LIKE '%$my_data%' ORDER BY name";
$result = mysql_query($sql) or die(mysqli_error());

if($result)
{
    while($row=mysql_fetch_array($result))
    {
        echo $row['name']."\n";
    }
}

?>

只需在新添加​​的輸入添加到DOM后調用.autocomplete()函數

function addForm() {
    $("#forms").append("<form><input type ='text' name='winner' id='winner'><br/></form>");
    $("#winner").autocomplete("autocomplete.php", {
        selectFirst: true
    });
}

我建議你把init代碼($('#id')。autocomplete)用於動態更新頁面的js代碼部分的自動完成。 我猜你正在使用ajax,所以你應該有這樣的東西

$.ajax({
    // your ajax options here
}).done(
    // here you update your html page
    // and then set the autocomplete on the new element
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM