Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX or JS + PHP] odświeżanie zawartości div-a
Forum PHP.pl > Forum > Przedszkole
puz219
Witam.

Mam formularz i w tym formularzu mam listę rozwijaną (<select>) i teraz do tej listy wczytują mi sie rekordy z pola języki w bazie danych mysql.

Tylko, że jeśli w bazie nie ma potrzebnego języka trzeba go tam dodać, więc obok listy rozwijanej zrobiłem link <DODAJ NOWY JĘZYK>. Po kliknięciu w link otwiera mi sie okienko pop-up, w którym jest formularz do dodania języka do bazy.

I teraz czy da się zrobić tak, żeby po dodaniu języka odświeżyło mi automatycznie listę na stronie.

Wydaje mi się, że już gdzieś coś takiego widziałem i żeby coś takiego zrobić potrzebna będzie java (javascript smile.gif ), tylko, że problem polega na tym, że kompletnie nie znam tego języka, a bardzo potrzebuje coś takiego zrobić.

Prosiłbym o pomoc lub jakieś wskazówki jak rozwiązać taki problem, będę bardzo wdzięczny.

Pozdrawiam.
sticker
mozesz pobrać selecta jako element i dac mu option poprzez appendChild
puz219
Pokombinowałem trochę i wymyśliłem pewien sposób na odświeżenie tej listy rozwijanej, a mianowicie, że tą listę wezmę w diva i pod spodem dam przycisk, po kliknieciu na który będzie mi sie odświeżała zawartość diva.

Więc poszperałem trochu w internecie i okazało sie, żeby osiągnąć taki efekt muszę skorzystać z AJAX-a, więc google -> kurs ajax -> i... katastrofa, zanim cokolwiek z tego zrozumiem, to miną ze 3 miesiące.

Więc zwracam się z prośbą do was, bardzo proszę o kawałek kodu jak odświeżyć zawartość diva, tylko to niestety musi być gotowe rozwiązanie, gdyż nawet jeśli mi dacie jakąś wskazówkę, to nawet sie w tym nie połapię, na chwilę obecną, to nawet javascriptu nie znam za dobrze, a właściwie w ogóle, a ajax to już dla mnie kosmos.

Bardzo proszę o pomoc, gdyż jest mi to bardzo potrzebne.

Z góry dzięki.

Pozdrawiam
lord_t
Do katalogu gdzie masz stronkę dajesz 2 pliki js:

1. advajax.js -sciagnij z http://advajax.anakin.us
2. funkcjeaa.js - o następującej zawartości
  1. function aktualizujSelecta()
  2. {
  3. advAJAX.get({
  4. url: "ABCD.php",
  5. "param":document.getElementById('sel')[document.getElementById('sel').selectedIndex].value,
  6. onSuccess : function(obj)
  7. {
  8. document.getElementById('zmieniany').innerHTML=obj.responseText;
  9. }
  10. });
  11. }


Uwaga: ABCD.php w powyższym pliku zamień na stronę php, która po uruchomieniu wyświetla to co chcesz mieć w drugim divie.


W sekcji <head> </head> swojej strony dodaj:
  1. <script type="text/javascript" src="advajax.js"></script>
  2. <script type="text/javascript" src="funkcjeaa.js"></script>



Gdzieś na twojej stronie:

  1. <select id='sel'>
  2. <option value='yyy'>YYY</option>
  3. <option value='xxx'>XXX</option>
  4. </select>
  5.  
  6. <button onclick='aktualizujSelecta();'>Przycisk</button>
  7.  
  8. <div id='zmieniany'></div>


Select ('sel') to Twój pierwszy select.
Po przyciśnięciu Przycisku, uruchomiona zostanie funkcja aktualizujSelecta(); która wpisze do diva('zmieniany') to co zwróci ABCD.php (jak pisałem wyżej ABCD.php zamień na swoja stronę).

Uwagi do ABCD.php:
Strona przyjmuje przez $_GET parametr 'param'. Wartość ta jest wartością wybranego tagu option z pierwszego selecta.
(tak możesz przekazać do ABCD.php parametr jaki chcesz)

PS. Funkcja ajaxa w tej wersji jaka napisałem nie obsługuje błędów, ponawiania połączenia, akcji na rozpoczęcie (initialization) i na zakończenie(finalization) itp.
PS.2. Zamiast tworzyć plik funkcjeaa.js można zamiennie wpisać jego zawartość w pliku Twojej strony. Jeśli chodzi o to umieszczanie to odsyłam do googla.
PS.3. Mam nadzieję, że nie piszę za późno;)
kraks
Witam, problem podobny wiec prosze o pomoc w tym temacie. Mam diva o id="odswiezaj_mnie" a w nim tabele z danymi pobieranymi z bazy Mysql. Chcialbym aby div w ktorym znajduje sie ta tabela odswiezal sie automatycznie np co 5 sekund, czyli w momencie kiedy dodam do tabeli jakis rekord aby ta zmiana odswiezyla sie na stronie. Odrzucam mozliwosc odswiezania calej strony, odswiezana ma byc tylko zawartosc diva. Prosze o pomoc i z gory dziekuje za odpowiedzi. Pozdrawiam
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.