Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Prototype]Combobox i zmienna w php
Forum PHP.pl > Forum > XML, AJAX
NeRoK
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ł?
erix
Przypisuj zdarzenia dla select i onchange, a nie dla option.
NeRoK
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?
erix
A sobie zobacz w firebugu, co jest kontekstem (this), to się przekonasz. winksmiley.jpg
NeRoK
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ą?
erix
Najlepiej pobierz uchwyt przez DOM (np. document.getElementById) i go podstaw. winksmiley.jpg
NeRoK
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?
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.