Witam,
temat autocomplte, autosuggest live search.... był wielokrotnie wałkowany.
Ostatnio znalazłem na swoje potrzeby kolejne rozwiązanie tego typu:

http://nodstrum.com/2007/09/19/autocompleter/

Dostosowałe do swoich potrzeb i działa znakomicie.

Zapragnąlem jednak zmian. Chciałbym przekazywac nieco więcej danych do ukrytych pól, by potem sobie je przerobić via PHP.

i tak:
dla przykladowego pliku rpc.php:
  1. <?php
  2. // wyciagam np. 3 dane z tabeli
  3. $query = $db->query(&#092;"SELECT name, pole2, pole2 FROM tabela WHERE name LIKE '$queryString%' LIMIT 10\");
  4.  
  5. if($query) {
  6. while ($result = $query ->fetch_object()) {
  7. // podpowiedzi wyswietlam jako liste, dodalem rowniez kolejne zmienne
  8. echo 'name.'&#092;');fill1(''.$result->pole1.'');fill2(''.$result->pole2.'');\">'.$result->name.' &nbsp;&nbsp'.$result->pole1.'';
  9. }
  10. }
  11. ?>


następnie w pliku index.html:
zmodyfikowałem funkcje dodając 2 nowe: fill1i fill2 oraz $('#suggestionslink'):
  1. <script type="text/javascript">
  2. function lookup(inputString) {
  3. if(inputString.length == 0) {
  4. // Hide the suggestion box.
  5. $('#suggestions').hide();
  6. $('#suggestionslink').show();
  7.  
  8.  
  9. } else {
  10. $.post("rpc.php", {queryString: ""+inputString+""}, function(data){
  11. if(data.length >0) {
  12. $('#suggestionslink').hide();
  13. $('#suggestions').show();
  14. $('#autoSuggestionsList').html(data);
  15.  
  16.  
  17. }
  18. });
  19. }
  20. } // lookup
  21.  
  22. function fill(thisValue) {
  23. $('#inputString').val(thisValue);
  24. setTimeout("$('#suggestions').hide();", 200);
  25. setTimeout("$('#suggestionslink').show();", 200);
  26. }
  27. [color="#006400"] function fill1(thisValue1) {
  28. $('#div1').val(thisValue1);
  29. }
  30. function fill2(thisValue2) {
  31. $('#div2').val(thisValue2);
  32. }
  33. </script>
  34.  
  35. <!-- ........ potem dodaje 2 nowe inputy do wyswietlania dodatkowych pol-->
  36.  
  37. <input type="text" name="div1" id="div1" onkeyup="lookup(this.value1);" onblur="fill1();" />
  38. <input type="text" name="div2" id="div2" onkeyup="lookup(this.value2);" onblur="fill2();" />
  39. <div class="suggestionsLink" id="suggestionslink" style="display: none;">link &nbsp;</div>


wyswietlaja sie 2 dodatkowe dane, ktore chcialem, pojawia sie rowniez napis link, ale zamiast niego chcialbym uzyskac np.cos takiego:
<a href="http://adres.pl/skrypt?link=zmienna.value1?link2=zmienna.value2">link</a>

Jak wrzucic te zmienne do linku?
Dzieki.
PW