Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Odświeżanie div'a (tabs)
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
ADIC
witam, dawno nie pisalem, bo nie potrzebowalem waszej pomocy
teraz przekopalem google, ale mi nie pomogly.

Rozwiazania ktore znalazlem nie pomagają.

  1. <div id="tabs">
  2. <ul >
  3. <li><a href="#s1">Słownik 1</a></li>
  4. <li><a href="#s2">Słownik 2</a></li>
  5. </ul>
  6. <div id="s1">
  7. <?PHP
  8. // tu znajduje sie zapytanie do bazy o wyświetlanie słownika 1
  9. ?>
  10. </div>
  11.  
  12. <div id="s2">
  13. <?PHP
  14. // tu znajduje sie zapytanie do bazy o wyświetlanie słownika 2
  15. ?>
  16.  
  17. </div>
  18. </div>
  19.  



używam starndardowej wersji (jesli tak mozna powiedziec) funkcji z java script
  1.  
  2. <script>
  3. var $s = jQuery.noConflict();
  4. $s( "#tabs" ).tabs();
  5. </script>

ale inne, ktorymi sie posilkowalem nie dawały zamierzonego efektu.

Chcialbym aby po wybraniu zakladki, wybrany DIV sie odświeżał, bo teraz jesli cos zmieni się w którymś ze słowników, użytkownik tego nie zoabaczy aż nie przeładuje strony.

Z góry dziekuje za pomoc

nospor
Używasz zakładek jQuery UI. Skoro ich używasz, to weź przejrzyj wszystkie przykłady ich zastosowania, na stronie jQuery UI, gdyż jednym z przykładów jest właśnie dynamiczne ładowanie zakładek, czyli to co chcesz.
ADIC
Cytat(nospor @ 5.12.2012, 10:25:55 ) *
Używasz zakładek jQuery UI. Skoro ich używasz, to weź przejrzyj wszystkie przykłady ich zastosowania, na stronie jQuery UI, gdyż jednym z przykładów jest właśnie dynamiczne ładowanie zakładek, czyli to co chcesz.



tak, wiem przegladałem, ale nie nie działało to u mnie, moze cos zle robie.

(a nie chce zeby divy byly ładowane z osobnych plikow html / php)
jesli o tym samym mowimy

  1. <!doctype html>
  2.  
  3. <html lang="en">
  4. <head>
  5. <meta charset="utf-8" />
  6. <title>jQuery UI Tabs - Content via Ajax</title>
  7. <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" />
  8. <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
  9. <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
  10. <link rel="stylesheet" href="/resources/demos/style.css" />
  11. <script>
  12. $(function() {
  13. $( "#tabs" ).tabs({
  14. beforeLoad: function( event, ui ) {
  15. ui.jqXHR.error(function() {
  16. ui.panel.html(
  17. "Couldn't load this tab. We'll try to fix this as soon as possible. " +
  18. "If this wouldn't be a demo." );
  19. });
  20. }
  21. });
  22. });
  23. </script>
  24. </head>
  25. <body>
  26.  
  27. <div id="tabs">
  28. <ul>
  29. <li><a href="#tabs-1">Preloaded</a></li>
  30. <li><a href="ajax/content1.html">Tab 1</a></li>
  31. <li><a href="ajax/content2.html">Tab 2</a></li>
  32. <li><a href="ajax/content3-slow.php">Tab 3 (slow)</a></li>
  33. <li><a href="ajax/content4-broken.php">Tab 4 (broken)</a></li>
  34. </ul>
  35. <div id="tabs-1">
  36. <p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.</p>
  37. </div>
  38. </div>
  39.  
  40.  
  41. </body>
  42. </html>

zrodlo jquery.com
nospor
<li><a href="ajax/content3-slow.php">Tab 3 (slow)</a></li>
<li><a href="ajax/content4-broken.php">Tab 4 (broken)</a></li>
No, i to jest to. Nie rozumiem jaki masz problem?
Chcesz ładować zmiany danych zakładek. Zmiany te coś ci musi zdaje się zwracać. I tym czymś jest zapewne plik php. Więc w czym problem?

Cytat
a nie chce zeby divy byly ładowane z osobnych plikow html / php
No niestety bez tego się nie obejdzie. Skoro chcesz wyświetlać zmiany w bazie danych, to nie ma bata - musisz się o te zmiany zapytać serwer czyli jakiś swój plik php
ADIC
Cytat(nospor @ 5.12.2012, 10:52:03 ) *
<li><a href="ajax/content3-slow.php">Tab 3 (slow)</a></li>
<li><a href="ajax/content4-broken.php">Tab 4 (broken)</a></li>
No, i to jest to. Nie rozumiem jaki masz problem?
Chcesz ładować zmiany danych zakładek. Zmiany te coś ci musi zdaje się zwracać. I tym czymś jest zapewne plik php. Więc w czym problem?

No niestety bez tego się nie obejdzie. Skoro chcesz wyświetlać zmiany w bazie danych, to nie ma bata - musisz się o te zmiany zapytać serwer czyli jakiś swój plik php



zrobilem wedlug zalecen, odswieza sie DIV, po kliknieciu na <li> </li> smile.gif

nie wiem czemu wczesniej nie chcialo dzialac poprawnie (moze gdzies "walnąłem byka")

  1. <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" />
  2. <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
  3. <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
  4. <link rel="stylesheet" href="/resources/demos/style.css" />
  5. <script>
  6. var $tb = jQuery.noConflict();
  7.  
  8. $tb(function() {
  9. $tb( "#tabs" ).tabs({
  10. beforeLoad: function( event, ui ) {
  11. ui.jqXHR.error(function() {
  12. ui.panel.html(
  13. "Couldn't load this tab. We'll try to fix this as soon as possible. " +
  14. "If this wouldn't be a demo."
  15. );
  16. });
  17. }
  18. });
  19. });
  20.  
  21. </script>



  1. <div id="tabs">
  2. <ul >
  3. <li><a href="s1.php">Słownik 1</a></li>
  4. <li><a href="s2.php">Słownik 2</a></li>
  5. </ul>
  6.  
  7. </div>





Sorki za zamieszanie, ale czasem potrzebne jest drugie podejscie do tematu smile.gif najlepiej drugiego dnia rano .

hmmm, no prawie dobrze juz jest.

Odswiezanie dziala, ale jesli mam formularz w php, w ktorejs z zakladek, to niestety nie on dziala lub przerzuca do pierwszej zakladki w momencie jego wyslania.

Chyba nie o to mi chodziło.
nospor
To może jeszcz raz pomalutku.... smile.gif

1)To co ci nie działa?
2)Formularz się nie wysła czy się wysyła?
3) Gdzie go wysyłasz?
4)Pokaz kod formularza.
5) Nie masz przypadkiem formularza na całe zakładki a w zakładkach jeszcze drugi formularz?
6) Pokaz najlepiej cały kod. Pamiętaj, ze my nie siedzimy przed Twoim kompem i nie widzimy tego co ty widzisz.
ADIC
Cytat(nospor @ 5.12.2012, 12:42:36 ) *
To może jeszcz raz pomalutku.... smile.gif

1)To co ci nie działa?
2)Formularz się nie wysła czy się wysyła?
3) Gdzie go wysyłasz?
4)Pokaz kod formularza.
5) Nie masz przypadkiem formularza na całe zakładki a w zakładkach jeszcze drugi formularz?
6) Pokaz najlepiej cały kod. Pamiętaj, ze my nie siedzimy przed Twoim kompem i nie widzimy tego co ty widzisz.



odswiezanie zakladek dziala, czyli jesli uzytkownik jeden przeglada zakladke 1, a dane zakladce 2 sie zmienily, bo uzytkownik 2 cos zmodyfikowal / dodal nowa pozycję, to po wejsciu w zakladke 2 uzytkownik 1 widzi nowe dane.
problem mam w tej chcwili z formularzami, ktore dotycza np , edycji lub dodania danych jakie sa wyswietlane w zakladach.

zalozmy ze są to słowniki 1 i 2. (kazdy wyswietlany w swojej zakladce)

  1. kawalek kodu z s2.php (ktory wyswietla sie w zakladce 2) aby dodac kolejna pozycje do slownika.
  2.  
  3. echo '<form method="post" >';
  4. echo '<th align="center"> pozycja słownika</th> ';
  5. echo '<input type="text" name="nazwa_s2" class="inp-form" value="'.$_POST['nazwa_s2'].'" />';
  6. echo '<button type="submit" name="add_s2" value="Dodaj" class="form-submit-dodaj" title="Dodaj"></button>';
  7. echo '</form>';
  8.  
  9.  
  10.  
  11. $q = mysql_query("SELECT * FROM slownik2 ORDER BY s_nazwa", $l)
  12. echo '<table align="center" width="100%" id="product-table">';
  13. echo '<tr>';
  14. echo '<th class="table-header-repeat line-left ">';
  15. echo 'Nazwa';
  16. echo '</th>';
  17. echo '</tr>';
  18. if(mysql_num_rows($q) > 0) {
  19. while($rq=mysql_fetch_object($q)) {
  20. echo '<tr>';
  21. echo '<td>'.$rq->s_nazwa.'</td>';
  22. echo '<td></td>';
  23. echo '</tr>;
  24. }
  25. echo '</table>';
  26. }
  27.  
  28.  

oczywiscie w kodzie jest dzialanie INTO aby dodała sie kolejna pozycja (juz tego nie wklejalem)


w momencie klikniecia na przycisk wysylajacy formularz, przerzuca mnie do 1 zakladki i dane nie dodaja sie.

ad 5) formularze sa jedynie w plikach s1.php i s2.php (nie ma innych w pliku z zakladkami)
ad 6) wiem ze najlepiej jest pokazywac kod, myslalem ze bedzie jakis szybki pomysl na rozwiazanie problemu
nospor
Cytat
w momencie klikniecia na przycisk wysylajacy formularz, przerzuca mnie do 1 zakladki i dane nie dodaja sie.
Przerzuca cię na zakładkę 1, gdyż w momencie wysłania formularza przeładowywana jest strona a ty po przeładowaniu zawsze wyświetlasz pierwszą zakładkę. To jest logincze i tu nie ma żadnego błędu.

Pytanie czemu nie dodaje ci danych. Niestety nie pokazałeś nam kodu, który jest odpowiedzialny za odbieranie danych z forma i wkładania ich do bazy.
ADIC
Cytat(nospor @ 5.12.2012, 13:59:41 ) *
Przerzuca cię na zakładkę 1, gdyż w momencie wysłania formularza przeładowywana jest strona a ty po przeładowaniu zawsze wyświetlasz pierwszą zakładkę. To jest logincze i tu nie ma żadnego błędu.

Pytanie czemu nie dodaje ci danych. Niestety nie pokazałeś nam kodu, który jest odpowiedzialny za odbieranie danych z forma i wkładania ich do bazy.


logiczne, oczywiscie, zdaje sobie sprawe ze w momencie wysylania formularza strona jest przeladowywana, szczytem marzen bedzie jesli po przeladowaniu wroci do odpowiedniej zakladki.


co do formularzy to dzieje sie z nimi cos dziwnego

taki działa (umieszcza dane w bazie)
  1. echo '<form method="post">';
  2. echo '<input type="text" name="slownik2" class="inp-form" value="'.$_POST['slownik2_sad'].'">';
  3. echo '<button type="submit" name="dodaj" value="Dodaj" class="form-submit-dodaj" title="Dodaj" ></button>';
  4. echo '</form>';


ale umieszczenie go np w tabeli , to juz nie dziala (nie wysyla zadania) (czy jquery moze miec cos z tym wsponlego questionmark.gif to cos dziwne)

  1. echo '<table align="center">';
  2. echo '<form method="post">';
  3. echo '<tr>';
  4. echo '<th align="center">Słownik 2</th> ';
  5. echo '<td align="center" >';
  6. echo '<input type="text" name="slownik2" class="inp-form" value="'.$_POST['slownik2_sad'].'">';
  7. echo '</td>';
  8. echo '<th align="center">';
  9. echo '<button type="submit" name="dodaj" value="Dodaj" class="form-submit-dodaj" title="Dodaj"></button>';
  10. echo '</th>';
  11. echo '</tr>';
  12. echo '</form>';
  13. echo '</table>';
nospor
Cytat
szczytem marzen bedzie jesli po przeladowaniu wroci do odpowiedniej zakladki.
To też masz opisane w dokumentacji TABS. Skoro z nich korzystasz to naprawdę mógłbyś się zaprzyjaźnić z ich dokumentacją i przykładami smile.gif

Umieszczenie forma w tabeli nie ma żadnego wpływu na jego działanie. Co innego gdyby był w innym formie. Ale tego nie wiem bo ciągle nie widzę twojego kodu.

Prosiłem cię też o kod dotyczący wkładania do bazy.

Oraz zrób print_r($_POST);
i powiedz co wyświetla po wysłaniu forma.

ps: no i zakładam, ze kod dodawania do bazy masz w pliku głównym a nie w pliku s1 czy s2?
ADIC
Cytat(nospor @ 5.12.2012, 14:42:36 ) *
To też masz opisane w dokumentacji TABS. Skoro z nich korzystasz to naprawdę mógłbyś się zaprzyjaźnić z ich dokumentacją i przykładami smile.gif

Umieszczenie forma w tabeli nie ma żadnego wpływu na jego działanie. Co innego gdyby był w innym formie. Ale tego nie wiem bo ciągle nie widzę twojego kodu.

Prosiłem cię też o kod dotyczący wkładania do bazy.

Oraz zrób print_r($_POST);
i powiedz co wyświetla po wysłaniu forma.

ps: no i zakładam, ze kod dodawania do bazy masz w pliku głównym a nie w pliku s1 czy s2?



oczywiscie ze w glownym, bo formularz dziala smile.gif jesli nie jest w tabelce :/

zaraz poszukam w dokumentacji wracania do otwartej zakladki (moze uda sie dokoczyc ten nieszczesny projekt zakladkowy)
chociaz nie znajac za mocno specyfiki JS ciezko czasem mi cos z tego zrozumiec smile.gif

jesli podsunalbys jakies rozwiazanie bede ogromnie wdzieczny.


nie bede wklejal juz kodu wrzucajacego dane do bazy (bo ten mechanizm dziala)
nospor
Co do wracania zakładaek to poprostu musisz ustawić parametr cookie

.tabs({cookie : {}});
Ot i cała filozofia.

Z głównym formularzowym problemem nie jestem ci już w stanie pomóc, gdyż ignorujesz połowę moich pytań oraz próśb. A w ten sposób do niczego nie dojdziemy. No nic, Twoja sprawa smile.gif
ADIC
Cytat(nospor @ 5.12.2012, 15:00:56 ) *
Co do wracania zakładaek to poprostu musisz ustawić parametr cookie

.tabs({cookie : {}});
Ot i cała filozofia.

Z głównym formularzowym problemem nie jestem ci już w stanie pomóc, gdyż ignorujesz połowę moich pytań oraz próśb. A w ten sposób do niczego nie dojdziemy. No nic, Twoja sprawa smile.gif



nie ignoruje twoich pytan.
na czesc z nich jestem w stanie sobie odpowiedziec i rowniez tutaj pisalem co dziala a co nie (dlatego nie wklejalem kodu ktory dziala)
jedyne co nie dziala to forumularz umieszczony w tabeli (wyswietlanie $_POST[] nic nie daje bo nie uruchamia sie zadanie submit ) sprawdzalem i dlatego doszedlem do tego w jakim przypadku formularz jest wysylany a w jakim nie. i to mnie zdziwlo ze umieszczenie go w tabeli ignoruje wysylanie submita.
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.