Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> JQuery.Autocomplete, AJAX, wartość innego pola
bulimaxiu
post 11.12.2013, 11:52:01
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 18.06.2008
Skąd: Reda

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


Witam.

W JQuery.Autocomplete, w zapytaniu zewnętrznym (AJAX) potrzebuję umieścić parametr zawierający wartość z innego pola o znanym id.

  1. <input id="pole1" />
  2. <input id="pole2" />

Do pierwszego pola jest podpięty JQuery.Autocomplete.
  1. $(function() {
  2. $("#pole1").autocomplete('elements_ajax.php',{
  3. extraParams: {
  4. 'field': 'pole1',
  5. 'pole2': $('#pole2').val()
  6. }
  7. });

Niestety wartość jest zwracana pusta. Gdy podam w skrypcie gotową wartość - działa. Nie działa przez $() ani przez getElementById. Jak umieścić wartość innego pola w tej konfiguracji?

Pozdrawiam.
Sebastian
Go to the top of the page
+Quote Post
nospor
post 11.12.2013, 12:37:50
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




'pole2': $('#pole2').val()
przeciez o to jest odpalane od razu po uruchomieniu strony, a nie w momencie wysylania zadania autocomplete. No a w momencie odpalenia strony nie masz przeciez jeszcze ustalonej tej wartosci w polu, no nie?

Musisz sie podczepis pod żądanie autocomplete i te wartosc dopiero tam pobierac z pola


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
bulimaxiu
post 11.12.2013, 14:49:44
Post #3





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 18.06.2008
Skąd: Reda

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


Racja, nie zwróciłem na to uwagi. Znalazłem, że można się podpiąć w funkcji "request" do zmiennej "extraParams" dopisując "wartoscpola2: $("#pole2").val()", ale tu trzeba by zdefinować wszystkie dodatkowe pola jakie muszę podpiąć do wszystkich pól, bez podziału na poszczególne "instancje" autocomplete'a.

Zadziałało dopisanie czegoś takiego:
  1. if (param.substr(0,3) == '!**') {
  2. extraParams[key] = $('#'+param.substr(3)).val();
  3. } else {
  4. extraParams[key] = typeof param == "function" ? param() : param;
  5. }
Wtedy jeśli w extraParams dodam linijkę, 'pole2': '!**pole2' zostanie wysłane żądanie z bieżącą wartością "pole2".

Jeśli jest lepszy sposób na realizację tego zadania, zwłaszcza poprzez wpisanie funkcji przy uruchamianiu "instancji" dla pola, to bardzo proszę o sugestię, bo wtedy obeszło by się bez modyfikacji kodu autocomplet'a.

Ten post edytował bulimaxiu 11.12.2013, 14:57:25
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 Wersja Lo-Fi Aktualny czas: 10.07.2025 - 05:44