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

確かではありませんが、whileループのすべての入力が同じid = "Designation"であるためかもしれません...特定のIDを持つ要素は1つだけであるため、一意である必要があります。たぶん、whileループの最初にインデックス$ i = 0を追加し、ループの最後に$ i ++をインクリメントして、id="Designation"。$i...を変更します。または、クラス名でオートコンプリートを追加しますか?

于 2013-02-12T15:12:07.327 に答える
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 に答える