Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP]Autocomplete - lista po kliknięciu
Forum PHP.pl > Forum > Przedszkole
roghatt
Witam
W jaki sposób zrobić aby po kliknięciu w pole INPUT
  1. <input id="example" NAME="obszar" size="35" />

wyświetliła się lista podpowiedzi? (obecnie lista podpowiedzi pojawia się dopiero po wpisaniu pierwszej literki)

Kod
<script>
$(document).ready(function(){
   var data ="<? echo $tablica2;?>".split(",");
$("#example").autocomplete(data);
});
</script>

$tablica2 to słowa do podpowiedzi wypisane jedno za drugim po przecinku (pobrane wcześniej z bazy)

Co tutaj mogę jeszcze podać aby było pomocne? Całe pliki js chyba nie wkleję bo to ogólnodostępny skrypt
autocomplete.css
jqueryautocomplete.js
jquery-latest.js

Czy w ogóle jest możliwe aby po kliknięciu w pole INPUT pojawiły się już podpowiedzi?
djgarsi
Możesz wyświetlać np ostatnio szukane, lub najczęściej szukane. Bo jeśli nic nie wpiszesz to niestety autocomplete nie ma żadnego punktu zaczepienia.
roghatt
czyli można zrobić, że po kliknięciu w pole wyświetli się lista np. z ostatnio szukanymi? Czy w jaki sposób ma to wyświetlić jak autocomplete potrzebuje jakąś akcję czyli wpisanie znaku?
djgarsi
Hm. Może focus załatwi sprawę?
roghatt
znalazłem inny przykład:
http://jsfiddle.net/HXrLL/

Ale mimo że to umieściłem u siebie to nie działa:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <TITLE>test</TITLE>
  5.  
  6. <script type="text/javascript">
  7. <!--
  8. YUI({
  9. 'yui2': '2.9.0',
  10. '2in3': '4',
  11. }).use('yui2-datasource', 'yui2-autocomplete', function(Y) {
  12. var timeDS = [
  13. "2:00 AM",
  14. "2:15 AM",
  15. "2:30 AM",
  16. "2:45 AM",
  17. "2:00 PM",
  18. "2:15 PM",
  19. "2:30 PM",
  20. "2:45 PM"
  21. ],
  22. oDS, oAC;
  23.  
  24. YAHOO = Y.YUI2;
  25.  
  26. oDS = new YAHOO.util.LocalDataSource(timeDS);
  27. oDS.responseSchema = {
  28. fields: ["time"]
  29. };
  30.  
  31. oAC = new YAHOO.widget.AutoComplete("myInput", "myContainer", oDS);
  32. oAC.prehighlightClassName = "yui-ac-prehighlight";
  33. oAC.useShadow = true;
  34. oAC.minQueryLength = 0;
  35.  
  36. oAC.itemSelectEvent.subscribe(function(sType, aArgs) {
  37. var oData = aArgs[2];
  38. //alert(oData[1].time);
  39. });
  40.  
  41. document.getElementById("myInput").onfocus = function() {
  42. oAC.sendQuery("");
  43. }
  44.  
  45. });
  46. //-->
  47. </head>
  48. <label for="myInput">Enter a time:</label>
  49. <div id="myAutoComplete" class="yui-skin-sam">
  50. <input id="myInput" type="text">
  51. <div id="myContainer"></div>
  52. </div>
  53.  
  54. <div id="myTime"></div>
  55. </body>
  56.  
  57.  
  58. </html>


Czego może tutaj brakować?
erix
Dołączanych bibliotek.
roghatt
Jeszcze raz:
Kod
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <TITLE>test</TITLE>
  5. <script src="http://yui.yahooapis.com/3.6.0/build/yui/yui-min.js"></script>
  6.  
  7. <script type="text/javascript">
  8. <!--
  9. YUI({
  10. 'yui2': '2.9.0',
  11. '2in3': '4',
  12. }).use('yui2-datasource', 'yui2-autocomplete', function (Y) {
  13. var timeDS = [
  14.  
  15. "2:00 AM",
  16. "2:15 AM",
  17. "2:30 AM",
  18. "2:45 AM",
  19. "2:00 PM",
  20. "2:15 PM",
  21. "2:30 PM",
  22. "2:45 PM",
  23. ],
  24. oDS,
  25. oAC;
  26.  
  27. YAHOO = Y.YUI2;
  28.  
  29. oDS = new YAHOO.util.LocalDataSource(timeDS);
  30. oDS.responseSchema = {
  31. fields: ["time"]
  32. };
  33.  
  34. oAC = new YAHOO.widget.AutoComplete("myInput", "myContainer", oDS);
  35. oAC.minQueryLength = 0;
  36. oAC.forceSelection = true;
  37.  
  38. oAC.itemSelectEvent.subscribe(function (sType, aArgs) {
  39. var oData = aArgs[2];
  40. console.log(oData[1].time);
  41. });
  42.  
  43. YAHOO.util.Event.addListener("myInput", "click", function (e) {
  44. YAHOO.util.Dom.get("myInput").value = "";
  45. oAC.sendQuery("");
  46. });
  47. });
  48.  
  49. //-->
  50. </head>
  51. <label for="myInput">Enter a time:</label>
  52. <div id="myAutoComplete" class="yui-skin-sam">
  53. <input id="myInput" type="text">
  54. <div id="myContainer"></div>
  55. </div>
  56. </body>
  57.  
  58.  
  59. </html>


Mój kod nie działa pod IE, tylko pod FF
A ten przykład podawany wcześniej
http://jsfiddle.net/HXrLL/
działa pod IE. Czegoś dalej u mnie brakuje?
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.