2013-02-12 7 views
0

Я могу получить список автозаполнения значения в первой строке таблицы, но он не заполняется в следующей строке. Я хочу заполнить автозаполнение, чтобы заполнить все строки, созданные циклом while. Любое предложение подсказки очень ценится.Авто Завершение во всех строках таблицы

Я думал о создании функции (onkeyup) для вызова автозаполнения и встроенного в поле ввода, чтобы он работал над всеми строками.

Я понимаю автозаполнения связан с входным идентификатором элемента и он меняется в следующей строке генерируется после первого ряда,

, как справиться с этой ситуацией?

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> 

ответ

0

Вы должны использовать общий класс для всех входов вместо одного и того же идентификатора.

что-то вроде:

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

Если вам нужен идентификатор на каждом входе, я хотел бы предложить, чтобы добавить имя + номер autoincremental как идентификатор.

Если вы используете Jquery вы можете применить автозаполнение для всех из них, как это:

$(".autocomplete_input").autocomplete({source: url}); //url of the script that returns all the autocomplete values. 
+0

Thnx ..Это работал как charm..i переключился на JQuery и добавил class..and он работает ..:) – Aditya

+0

рад, что это помогло! – Naryl

0

Не уверен, но, возможно, потому, что все ваши входы в то время как петли имеют тот же идентификатор = «Обозначение» ... Там может быть только один элемент с определенным идентификатором, они должны быть уникальными. Может быть, добавить индекс $ i = 0 в начале цикла while, прирастить его $ i ++ в конце цикла и изменить id = "Обозначение". $ I ... Или добавить свой автозаполнение с помощью имени класса?

Смежные вопросы