Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Prototype]Combobox i zmienna w php
NeRoK
post 21.11.2009, 15:12:41
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 29.04.2006

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


Witam,

Z prototype i ajaxem mam styczność dopiero drugi raz.. Chciałbym napisać mały skrypt, który po wyborze danej opcji z listy rozwijanej przekaże wartość value tego elementu to zmiennej cat w php..
Czyli: użytkownik wybiera z listy opcję "Test 2" a ta opcja ma value=t2 i chcialbym aby strona odswiezyla "dynamicznie" w celu zaladowania index.php?cat=t2... Jednak nie wiem jak to sie zabrac, moje rozwiazanie ktore zrobilem nie dziala:
  1. <script src="lib/prototype.js" language="JavaScript" type="text/javascript"></script>
  2. <script type="text/javascript">
  3. function getCat()
  4. //<![CDATA[
  5. {
  6. var url = 'index.php';
  7. var myAjax = new Ajax.Updater(
  8. 'cat',
  9. url,
  10. {
  11. parameters:Form.serialize(this.form),
  12. method: 'get',
  13. asynchronous: true
  14. });
  15.  
  16. }
  17. //]]>


Combobox:
  1. <FORM action="index.php" method="get">
  2. <select name="catMenu">
  3. <option value="" selected onclick="getCat()">Zaden</option>
  4. <option value="t1" onclick="getCat()">Test1</option>
  5. </form>


Jakie poprawki muszę wprowadzić, żeby mój "wynalazek" zadzialał?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
erix
post 21.11.2009, 15:45:06
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Przypisuj zdarzenia dla select i onchange, a nie dla option.


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
NeRoK
post 21.11.2009, 16:21:59
Post #3





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 29.04.2006

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


Witam,

Zmieniłem na:
  1. <select name="categoryMenu" onchange="getCat()">

Ale niestety nie działa nadal. Na stronie mam dwa formularze, czy może mieć to związek z tym, że:
  1. parameters:Form.serialize(this.form)

nie działa?
Go to the top of the page
+Quote Post
erix
post 21.11.2009, 16:28:03
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A sobie zobacz w firebugu, co jest kontekstem (this), to się przekonasz. winksmiley.jpg


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
NeRoK
post 21.11.2009, 17:20:58
Post #5





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 29.04.2006

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


Witam ponownie,

Świetne narzędzie ten Firebug smile.gif Przyda mi się do dalszej pracy. Z moich "badań" ;-) wynika, że ajax pobiera złą formę? Więc jak mam mu przekazać tą formę właściwą?
Go to the top of the page
+Quote Post
erix
post 21.11.2009, 18:17:01
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Najlepiej pobierz uchwyt przez DOM (np. document.getElementById) i go podstaw. winksmiley.jpg


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
NeRoK
post 21.11.2009, 18:34:54
Post #7





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 29.04.2006

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


ech, strasznie zielony w tym jestem sad.gif
Zmieniłem:
  1. var formparm = document.getElementById('selectMenu');
  2. <!-- ... -->
  3. parameters: formparm,


oraz select:
  1. <select name="categoryMenu" onchange="getCat()" id="selectMenu">


I nie rusza dalej nic..

PS: Zauwazylem, że nadal bierze zlą formę tj. (pobierz2.php) zamiast test.php, jak mogę to zmienić? Wartość cat, jest już pobierana poprawnie
PS2: Uporałem się i z tym problem, wszystk przekazuje poprawie.. ale według mojego zalozenia strona powinna się przeładować (skrypt w php otrzymuje inną zmienną cat, ładuje inny plik), ale tak niestety się nie dzieje... Co zrobiłem źle?

Ten post edytował NeRoK 21.11.2009, 19:03:14
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: 24.07.2025 - 23:29