![]() |
![]() ![]() |
![]() |
-kubek3898- |
![]()
Post
#1
|
Goście ![]() |
Na początku od razu mówię, użyłem szukajki, niestety nie znalazłem to czego szukam
![]() Mam następujący kod:
I teraz jak za pomocą AJAX'a zrobić tak, że po kliknięciu "Zaloguj" strona nie przeładowuje się tylko zostaje wypisany stosowny komunikat: lub "Raczkuję" jak widać w temacie JS oraz AJAX, więc proszę o pomoc. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Na początku od razu mówię, użyłem szukajki, niestety nie znalazłem to czego szukam Wyjątkowo starałeś się nic nie znaleźć.... na temat ajaxa jest tyle materiału że szok....Zainteresuj się biblioteką jQuery. Z nią AJAX to pestka. Gdy opanujesz przykłady udostępnione na stronie jQuery, wróć do problemu z logowaniem. Tym czasem naukę czas zacząć. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
-kubek3898- |
![]()
Post
#3
|
Goście ![]() |
Studiuję teraz książkę "JavaScript i jQuery - Nieoficjalny podręcznik", więc mam nadzieję, że znajdę rozwiązanie.
W necie może i jest tego masa, ale każda próba modyfikacji przeze mnie skończyła się fiaskiem. Witam ponownie, poczytałem trochę o Ajaxie oraz samym JS i wyszło takie cuś:
oraz sam kod JS:
Wszystko spoko, tylko że aż wstyd się przyznać do jednej rzeczy. A mianowicie:
Na początku miałem dobrze jakoś zrobiłem tak, że wyświetlał się komunikat bez znikania formularza logowania. Jednak... albo nie zapisałem pliku, albo coś, lecz teraz po kliknięciu: Zaloguj usuwa się formularz, a wyświetla komunikat. Modyfikowałem 12434234234234 razy, raz to stosując funkcję append(), raz to prepend() nic nie dało. Proszę o pomoc! Jak zrobić, by po kliknięciu zaloguj robiło się:
a nie: |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 18 Dołączył: 7.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Kod <form action='java script:logowanie();'> zmień(java script) na(javascript, pisane łącznie): albo ustaw funkcję onsubmit lub zrób button, który wykonuje funkcję logowanie() po kliknięciu. A ta linijka działa bardzo dobrze(chociaż powinieneś zmienić na prepend, żeby uzyskać wymagany efekt): Kod $('#login').append('<div id=\'login_error\'>Nie podano loginu.</div>'); #edit Upewnij się, że nie używasz nigdzie innerHTML, bo on zmienia całą zawartość kontenera. Ten post edytował ethann 30.01.2013, 18:20:52 |
|
|
-kubek3898- |
![]()
Post
#5
|
Goście ![]() |
Jak zmienię, ze spacją to mi adres strony wywala na: http://localhost/lalala/java script:logowanie%28%29;?nick=&pass=
oraz treść strony: Zabroniony dostęp! Nie masz dostępu do żądanego obiektu. Jest on zabezpieczony przed odczytem lub nie może być odczytany przez serwer. Jeśli myślisz, że jest to błąd tego serwera, skontaktuj się z administratorem. Error 403 localhost Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7 A co do append() i komunikatu to nadal, nie działa, nawet tak jak podałeś. Po prostu nic się nie wyświetla. Ten post edytował kubek3898 30.01.2013, 18:27:01 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 18 Dołączył: 7.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Na pewno dołączyłeś bibliotekę JQuery?
Podam Ci przykładowy kod użycia funkcji prepend, która pozwoli Ci uzyskać wymagany efekt. Kod <html> <head> <script type=text/javascript src="http://code.jquery.com/jquery-1.9.0.min.js"></script> <script type=text/javascript> function logowanie() { if($('#nick').val() == '') { $('#login').prepend('<div id=\'login_error\'>Nie podano loginu.</div>'); } else { $('#login').prepend('<div id=\'login_error\'>Podano login.</div>'); } } </script> </head> <body> <form action="java script:logowanie();"> <div id='login'> <label for='nick'>Login</label> <input type='text' size='20' id='nick' name='nick' value=''> <input type='submit' class='button' value="Zaloguj" /> </div> </form> </body> </html> ewentualnie możesz zrobić nowy div i do niego dopisywać treści. Kod <html>
<head> <script type=text/javascript src="http://code.jquery.com/jquery-1.9.0.min.js"></script> <script type=text/javascript> function logowanie() { if($('#nick').val() == '') { $('#error').text('Nie podano loginu.'); } else { $('#error').text('Podano login.'); } } </script> </head> <body> <form action="java script:logowanie();"> <div id='login'> <div id='error'></div> <label for='nick'>Login</label> <input type='text' size='20' id='nick' name='nick' value=''> <input type='submit' class='button' value="Zaloguj" /> </div> </form> </body> </html> |
|
|
-kubek3898- |
![]()
Post
#7
|
Goście ![]() |
Tak na pewno jest dołączona.
I nadal nic. Zrobiłem tak jak Ty podałeś, bez dołączania zew. pliku, ale... nic. Dalej nie wyświetla się stosowny komunikat. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 18 Dołączył: 7.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Przetestuj którykolwiek z przykladów podanych przeze mnie bez wprowadzania żadnych zmian i powiedz jakie były efekty.
Z jakiej przeglądarki korzystasz? Twój plik z jquery na pewno jest sprawny? Przeglądarka nie wyrzuca żadnych błędów JS? |
|
|
-kubek3898- |
![]()
Post
#9
|
Goście ![]() |
Dobra przeniosłem skrypt na innny hosting i o dziwo działa! Jednak teraz mam kolejny problem. Po wypełnieniu danych, powinna zostać uruchomiona dalsza część funkcji logowanie(); tj.
która odpowiada za przesłanie do pliku 'check.php' parametrów logowania. Oczywiście w bazie mam tabelę, a w niej rekord z przykładowym kontem, ale po wpisaniu poprawnych danych... nic się nie dzieje. Proszę o pomoc. Plik login.js:
Plik login.php
Aha, jeszcze jedno, jak coś to poradnik tworzenia AJAX'owego logowania brałem z http://funkcje.net/nsc/2/1733/3/8/page.html |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 28.05.2025 - 09:40 |