Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] Ponowne pokazanie pola div
Forum PHP.pl > Forum > Przedszkole
qverty
Na stronie mam pole div w którym znajduje się input i przycisk OK. Chodzi o to żeby po wpisaniu do pola input jakiejś nazwy powiedzmy aabb11 i kliknięciu przycisku OK skrypt załadował zawartość pliku "aabb11.html" do pola div. Skrypt zawiera też obsługę błędów w przydadku gdyby wpisana została nazwa pliku który nie istnieje. Zawartość div'a jest podmieniana na komunkiat błędu. Wszystko działa elegancko, tylko że chciałbym do komunikatu o błędzie dodać łącze które przywróci zawartość oryginalnego div'a (tego z polem input i przyciskiem). Zrobiłem to tak: <a href="index.php">Powrót</a> tyle że to rozwiązanie przeładowuje mi całą stronę. Chciałbym mieć możliwość podmiany tego div'a bez ponownego ładowania całej strony. Teraz pytanie bo męczę się już jakiś czas... czy takie coś jest w ogóle możliwe do zrealizowania ?

  1.  
  2. $(document).ready(function(){
  3.  
  4. $('#ok').click(function(){
  5.  
  6. var plik = $("#nazwapliku").val();
  7.  
  8. $.ajax({
  9. type: "GET",
  10. url: plik+".html",
  11. pobierz: function (XMLHttpRequest) {
  12. $("#formularz").html("Odczytywanie informacji...");
  13. },
  14. success: function(msg) {
  15. $("#formularz").html(msg);
  16. },
  17. error: function (XMLHttpRequest, textStatus, errorThrown) {
  18. $("#formularz").html('<div class=error>Błędna nazwa, lub plik nie istnieje.</div>');
  19. }
  20. });
  21. });
  22. });
  23. </script>
  24.  
  25. <div class="box">
  26. <div class="form1" id="formularz">
  27. Podaj nazwę pliku i kliknij przycisk OK<br />
  28. <br />
  29. <input type="text" size="15" id="nazwapliku">
  30. <input type="button" value="OK" id="ok">
  31. </div>
  32. </div>
osl
zmień lekko koncepcje - zamiast nadpisywać wszystko w div#formularz, dodaj sobie drugiego div'a, np. #msgbox
Wrzucasz wszelkie informacje typu "odczytuje" itp. do #msgbox, a #formularz ukrywasz po prostu kiedy jest taka potrzeba.
A w linku który chcesz dodać po prostu zrób zdarzenie, które schowa #msgbox a pokaże #formularz

Przy odrobinie uporu da się zrobić tak jak zacząłeś powyżej, ale będzie to złożone i mało elastyczne rozwiązanie...

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.