Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Autouzupełnianie w pętli
Forum PHP.pl > Forum > Przedszkole
beher83
Witam,
Mam textbox w pętli jak poniżej:

  1. for ($i = 1; ; $i++) {
  2. if ($i > 20) {
  3. break;
  4. }
  5. echo "<br/>".$i;
  6. <div>
  7. Players:<input type="text" size="30" value="" id="inputString" onkeyup="lookup(this.value);" onblur="fill();" />
  8. </div>
  9. <div class="suggestionsBox" id="suggestions" style="display: none;">
  10. <div class="suggestionList" id="autoSuggestionsList">
  11. &nbsp;
  12. </div>
  13. </div><br/>';
  14. }

korzysta on z autouzupełnienia które jest pobierane z bazy danych za pomocą tego kodu:

<script>
function lookup(inputString) {
if(inputString.length == 0) {
$('#suggestions').hide();
} else {
$.post("rpc.php", {queryString: ""+inputString+""}, function(data){
if(data.length >0) {
$('#suggestions').show();
$('#autoSuggestionsList').html(data);
}
});
}
} // lookup
function fill(thisValue) {
$("#inputString").val(thisValue);
setTimeout("$('#suggestions').hide();", 200);
}
</script>

Wszystko działa świetnie ale tylko dla pierwszego tekst boksa. W drugim polu też sie pojawiają sugestie ale po wybraniu jednej zmienia się wartość pierwszego jak się można domyślić w czym tkwi mój problem.
Wiem że każde id="inputString" powinno mieć unikalny kod jak sie nie mylę coś w stylu id="inputString'.$i.'" ale jak to zrobić w funkcji jquery "fill" by odpowiadały każdemu z pól z osobna.

Będę wdzięczny za porady
Sephirus
W Twoim kodzie tutaj brakuje jeszcze miejsca gdzie wywołujesz funkcję fill - pewnie jest to w onclicku danych z autouzupełniania. Ale ok bez tego też się da.

Masz dwie opcje:

1. nadawać i przekazywać ID wybranego inputa do tego systemu autouzupełniania

2. pamietać który input aktualnie się edytuje:

Do każdego inputa dodaj jeszcze: onfocus="focusedInput = this;"

i zaktualizuj kod JS:

[JAVASCRIPT] pobierz, plaintext
  1. var focusedInput = null;
  2.  
  3. function lookup(inputString) {
  4. if(inputString.length == 0) {
  5. $('#suggestions').hide();
  6. } else {
  7. $.post("rpc.php", {queryString: ""+inputString+""}, function(data){
  8. if(data.length >0) {
  9. $('#suggestions').show();
  10. $('#autoSuggestionsList').html(data);
  11. }
  12. });
  13. }
  14. } // lookup
  15.  
  16. function fill(thisValue) {
  17. $(focusedInput).val(thisValue);
  18. setTimeout("$('#suggestions').hide();", 200);
  19. }
[JAVASCRIPT] pobierz, plaintext
beher83
kod działa super, ale wyświetlana lista dalej pokazue sie przy pierwszym polu teksowym. Jak aktywuje i wpisuje coś w 3 polu tekstowym lista wyskakuje pod pierwszym polem zamiast pod tym co wpisuje. jakiś pomysł, byłbym wdzieczny
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.