0

我能够获得表格第一行中值的自动完成列表,但它没有填充到下一行。我想填充自动完成以填充由 while 循环创建的所有行。任何帮助建议都非常感谢。

我想使用创建一个函数(onkeyup)来调用自动完成并嵌入到我的输入字段中以使其适用于所有行。

我了解自动完成绑定到元素的输入 id 并且它正在更改为在第一行之后生成的下一行,

如何处理这种情况?

function getPath($id)
{
    echo "<table border='1px' width=650>";
    echo "<tr>";
    echo "<th width=120>Designation</th>";
    echo "</tr>";     
    echo "<br>";
    $sql1 = mysql_query("select * from t_path where f__id=$id");

    while($res  = mysql_fetch_array($sql1))
    {

        echo "<tr>";
        echo "<td width=120><input type='text' name='change_desig' id = 'Designation' value='".$res['f_designation']."' onblur=updateDesigninDb(this.value,'".$res['f_start_dt']."',".$id.")></td>";
        echo "</tr>";

    }
    echo "</table>";
}



getPath($id);

?>

<!--Script to update data in DB ----------------------------------->
 <script type="text/javascript">
 function updateDesigninDb(designation)
  {
    var baseurl = "/updateDB.php";
     $.ajax({
        type: "POST",
        dataType: "html",
        url: baseurl,
        data: "designation="+designation                                            
        ,
        success: function(userDetails){

        }
          });


       }
    </script>

   <SCRIPT LANGUAGE='javascript'>

       var designation=[
        <?php
         $load = mysql_query("select f_designation from t_designation_master;");
         while($arr = mysql_fetch_array($load))
         {

           echo "'".$arr[0]."',";
         }
        ?>

     ].sort();

          AutoComplete_Create('Designation',designation);
              </script>
4

2 回答 2

0

您应该在所有输入上使用一个公共类而不是相同的 id。

就像是:

echo "<td width=120><input type='text' class='autocomplete_input' value='".$res['f_designation']."' onblur=updateDesigninDb(this.value,'".$res['f_start_dt']."',".$id.")></td>";

如果您在每个输入上都需要 id,我建议添加一个名称 + 自动增量数字作为 id。

如果您使用的是 Jquery,您可以像这样将自动完成应用于所有这些:

$(".autocomplete_input").autocomplete({source: url}); //url of the script that returns all the autocomplete values.
于 2013-02-12T15:57:11.907 回答
0

不确定,但可能是因为您在 while 循环中的所有输入都具有相同的 id ="Designation"... 只能有一个具有特定 id 的元素,它们必须是唯一的。也许在 while 循环的开头添加一个索引 $i =0,在循环结束时增加它 $i++ 并更改 id ="Designation".$ i... 或者通过类名添加您的自动完成?

于 2013-02-12T15:12:07.327 回答