Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将自动完成应用于包含数据库数据的动态生成的文本框_Javascript_Php_Jquery_Ajax_Input - Fatal编程技术网

Javascript 将自动完成应用于包含数据库数据的动态生成的文本框

Javascript 将自动完成应用于包含数据库数据的动态生成的文本框,javascript,php,jquery,ajax,input,Javascript,Php,Jquery,Ajax,Input,关于我的问题,我已经在stackoverflow上查看了很多问题,但无法将它们应用于我的问题 因此,我在这里给我的文件,我一直在使用 我能够成功地将autocomplete与静态文本框一起使用。我从数据库中获取数据。但是,我不知道如何对动态生成的文本框执行此操作。我想为动态生成的文本框和数据库中的数据实现自动完成功能 这是我的档案: index.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "htt

关于我的问题,我已经在stackoverflow上查看了很多问题,但无法将它们应用于我的问题

因此,我在这里给我的文件,我一直在使用

我能够成功地将autocomplete与静态文本框一起使用。我从数据库中获取数据。但是,我不知道如何对动态生成的文本框执行此操作。我想为动态生成的文本框和数据库中的数据实现自动完成功能

这是我的档案:

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>

自动完成输入框
$(文档).ready(函数(){
$(“#name”).autocomplete(“autocomplete.php”{
selectFirst:true
});
});
函数addForm(){
$(“#表格”)。追加(
“
” ); } 姓名:
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";
    }
}

我建议您在动态更新页面的js代码部分添加自动完成的初始代码($('#id').autocomplete)。我猜你在使用ajax,所以你应该有类似的东西

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

将新添加的输入添加到DOM后,只需对其调用
.autocomplete()
函数即可

function addForm() {
    $("#forms").append("<form><input type ='text' name='winner' id='winner'><br/></form>");
    $("#winner").autocomplete("autocomplete.php", {
        selectFirst: true
    });
}
函数addForm(){
$(“#表格”)。追加(
); $(“#获胜者”).autocomplete(“autocomplete.php”{ selectFirst:true }); }
您在哪里添加文本输入?@tymeJV:我已经更新了我的代码,以显示我是如何添加文本框的。当您使用jQuery将新元素添加到DOM时,请为新文本字段指定一个ID,然后使用相同的方法($(“#元素_ID”)。自动完成。有什么问题吗?@sébastien:我已经更新了我的代码库,以显示如何添加文本框。我不知道如何在动态文本框中使用autocomplete。此外,我想将uder在这些框中添加的所有数据保存到数据库中。我很困惑,谢谢它现在起作用了……)但它只适用于一个dyanamix文本框,不适用于第三个文本框,以此类推。。如何更改上面的代码?@SeeyaK——您需要了解jQuery选择器的工作原理,上面的代码只针对ID为
winner
的新添加元素。改变它以适应任何新的。是的,我试图添加一些类似于变量计数器的东西。也许这是个愚蠢的想法。是的,我需要学习jQuery,但我需要一个快速的解决方案,因为它有点紧急。你能告诉我怎么做吗?嗨。。我用class代替id,现在它可以工作了。但我需要在以后添加更多代码时检查它是否工作正常。谢谢你建议我使用jQuery选择器。如果我在futureone问题中遇到更多困难,我会向你寻求帮助。尽管现在它可以工作了,但我使用class而不是id,如果我想在php中使用$u POST访问这些元素,我该怎么做?