Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript] Tagi w inpucie
bahh
post
Post #1





Grupa: Zarejestrowani
Postów: 261
Pomógł: 2
Dołączył: 13.05.2012

Ostrzeżenie: (0%)
-----


Witam, potrzebuję skryptu działającego jak ten:
http://timschlechter.github.io/bootstrap-tagsinput/examples/

jako "Objects as tags"

czyli mamy tablicę typu:

1 : Jan
2: Adam
3: Wojtek
6: Jarek

i wpisujemy w inputa literke J, to wyświetli podpowiedzi Jan, Jarek, a gdy wybierzemy Jan, wartością przesyłaną w inpucie będzie nie Jan a 1 (liczba w tablicy przypisana do Jan). Rzecz jasna żeby po przecinku wprowadzać kolejne osoby.

Skrypt byłby na początku idealny, jednakże nie działa mi on w Chromie (mam na myśli wersję trzymaną na dysku) i też miałem problemy które są opisane w tym poście: http://forum.php.pl/index.php?showtopic=236022 także ze względu na niejasną dokumentacje, niezrozumiały kod szukam czegoś innego.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
kpt_lucek
post
Post #2





Grupa: Zarejestrowani
Postów: 428
Pomógł: 77
Dołączył: 10.07.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Select2


--------------------


Cytat
There is a Bundle for that
Lukas Kahwe Smith - October 31th, 2014
Go to the top of the page
+Quote Post
bahh
post
Post #3





Grupa: Zarejestrowani
Postów: 261
Pomógł: 2
Dołączył: 13.05.2012

Ostrzeżenie: (0%)
-----


Mam coś takiego:
http://jsfiddle.net/yf71qgcc/

Jednakże wciąż nie śmiga, wie ktoś gdzie jest błąd?
Go to the top of the page
+Quote Post
kpt_lucek
post
Post #4





Grupa: Zarejestrowani
Postów: 428
Pomógł: 77
Dołączył: 10.07.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Jsfiddle

#1: obiekty w tablicy:
BYŁO: { id: 54, text 'Jan Kowalski'}
JEST: { id: 54, text: 'Jan Kowalski'}

#2: Ładujesz plugin do inputa na $(document).ready() a tablicę danych dostarczasz podczas odczytu skryptu = jeszcze przed zdarzeniem .ready()

#3: drobnostki w jsfiddle podczas załączania plików css i js


Pozdrawiam

Ten post edytował kpt_lucek 23.10.2014, 21:10:30


--------------------


Cytat
There is a Bundle for that
Lukas Kahwe Smith - October 31th, 2014
Go to the top of the page
+Quote Post
bahh
post
Post #5





Grupa: Zarejestrowani
Postów: 261
Pomógł: 2
Dołączył: 13.05.2012

Ostrzeżenie: (0%)
-----


wszystko śmiga, chciałbym jednak, żeby po załadowaniu strony był np. tylko Jan Kowalski i Staś Stasiowaty

wiem że kasując linijkę $('#e21').select2('data', preload_data); po załadowaniu strony nie wyświetlą się wszystkie wartości w tablicy
Go to the top of the page
+Quote Post
kpt_lucek
post
Post #6





Grupa: Zarejestrowani
Postów: 428
Pomógł: 77
Dołączył: 10.07.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(bahh @ 24.10.2014, 10:29:26 ) *
wszystko śmiga, chciałbym jednak, żeby po załadowaniu strony był np. tylko Jan Kowalski i Staś Stasiowaty

wiem że kasując linijkę $('#e21').select2('data', preload_data); po załadowaniu strony nie wyświetlą się wszystkie wartości w tablicy

Ajax?


--------------------


Cytat
There is a Bundle for that
Lukas Kahwe Smith - October 31th, 2014
Go to the top of the page
+Quote Post
bahh
post
Post #7





Grupa: Zarejestrowani
Postów: 261
Pomógł: 2
Dołączył: 13.05.2012

Ostrzeżenie: (0%)
-----


chcialbym uniknąć ajaxa, po prostu w tym inpucie jest np. VALUE="54,55" i wyświetla zgodnie z tablicą tam przesłaną przypisane tam imiona
Go to the top of the page
+Quote Post
kpt_lucek
post
Post #8





Grupa: Zarejestrowani
Postów: 428
Pomógł: 77
Dołączył: 10.07.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $array = array(
  3. 'id' => 123,
  4. 'text' => "Janek"
  5. ),
  6. 'id' => 124,
  7. 'text' => "Franek"
  8. ),
  9. );
  10. ?>
  11. <html>
  12. <head>
  13. <!-- trochę kodu -->
  14. </head>
  15. <body>
  16. <script type="text/javascript">
  17. var preload_data = '<?php echo json_encode($array); ?>';
  18. $(document).ready(function () {
  19. $('#e21').select2({
  20. multiple: true,
  21. query: function (query) {
  22. var data = {results: []};
  23. $.each(preload_data, function () {
  24. if (query.term.length == 0 || this.text.toUpperCase().indexOf(query.term.toUpperCase()) >= 0) {
  25. data.results.push({id: this.id, text: this.text});
  26. }
  27. });
  28. query.callback(data);
  29. }
  30. });
  31. $('#e21').select2('data', preload_data);
  32. });
  33. </script>
  34. </body>
  35. </html>


Nie testowane


--------------------


Cytat
There is a Bundle for that
Lukas Kahwe Smith - October 31th, 2014
Go to the top of the page
+Quote Post
bahh
post
Post #9





Grupa: Zarejestrowani
Postów: 261
Pomógł: 2
Dołączył: 13.05.2012

Ostrzeżenie: (0%)
-----


Podsunąłeś mi w sumie rozwiązanie, wykonałem je nieco inaczej ale bazowałem na twoim pomyśle. Dzięki wielkie za pomoc smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 08:08