![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 2 Dołączył: 26.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Napisałem taką funkcję obsługującą dodawanie komentarzy formularza:
Problem jest taki, że działa ona tylko w pierwszym divie z komentarzami, czyli odnośnie pierwszego formularza. Zakładając że mam na stronie 10 formularzy, po dodaniu komentarza za pomocą pierwszego komentarz się pojawia tam gdzie powinien. Korzystając z jakiegokolwiek innego, komentarz również dodaje się tam gdzie powinien, ale po przeładowaniu strony, co jest bardzo dziwne gdyż plik PHP obsługujący dodawanie elementów do bazy nie ma nawet nagłówka kierującego z powrotem na stronę główną. Odnoszę wrażenie że to przez brak odniesienia do konkretnego formularza. Co przypisać zmiennej $form żeby zawsze odnosiła się do odpowiedniego Ten post edytował Barton 16.03.2012, 13:30:55 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 587 Pomógł: 131 Dołączył: 8.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
http://api.jquery.com/jQuery.each/
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 2 Dołączył: 26.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za szybką odpowiedź. Teraz moja funkcja wygląda tak:
I w tym momencie strona odświeża się przy każdym formularzu, nawet tym pierwszym. (IMG:style_emoticons/default/sad.gif) Poza tym wciąż się zastanawiam jakim cudem strona się przeładowuje gdyż poza JavaScriptem nie ma żadnych instrukcji wracających na stronę główną. Ten post edytował Barton 16.03.2012, 13:42:40 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 587 Pomógł: 131 Dołączył: 8.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
http://api.jquery.com/event.preventDefault/
I jeszcze jedno nie zapominaj o tym, że id musi być unikalne.
Nie widziałem kodu html na stronie ale zakładam, że tak nie jest. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 2 Dołączył: 26.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Id są unikalne, do każdej nazwy identyfikatora dodaję przez PHP identyfikator postu.
Wracając do tematu niestety nic mi to nie dało i w tym przypadku żadna akcja po prostu się nie wykonuje i przerzuca do strony zajmującej się skryptem php. Skleciłem coś takiego:
Ale to również nie działa. Nie użyłem metody event.preventDefault(); gdyż nawet po przeczytaniu dokumentacji nie za bardzo rozumiem czemu ona służy, a nawet po jej dodaniu nic to nie zmienia. Jakiś pomysł dlaczego pomimo zdefiniowania akcji 'submit', nie jest ona w ogóle wykonywana? (IMG:style_emoticons/default/sad.gif) Kod HTML formularza:
EDIT: zorientowałem się również że wszystkie 10 formularzy ma ten sam identyfikator więc zmieniłem je na klasę (edytując również pierwszą linijkę na $('.commentform').each(function(element){ ). To również nic nie dało. Ten post edytował Barton 16.03.2012, 16:12:18 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 387 Pomógł: 66 Dołączył: 31.03.2005 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
edit: nie przeczytałem kodu dokładnie
Ten post edytował markonix 16.03.2012, 17:51:59 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 70 Pomógł: 2 Dołączył: 26.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Problem rozwiązany:
Okazało się że pierwotny kod był całkowicie działający, tylko że korzystając z akcji $(document).ready(); zdążył się załadować tylko jeden formularz (które to są ładowane w pętli przez php). Dlatego też skrypt działał tylko w pierwszym formularzu. Sprawę rozwiązało umieszczenie skryptu w metodzie $(window).load();. Pozdrawiam i jeszcze raz dzięki! |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 387 Pomógł: 66 Dołączył: 31.03.2005 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
Problem rozwiązany: Okazało się że pierwotny kod był całkowicie działający, tylko że korzystając z akcji $(document).ready(); zdążył się załadować tylko jeden formularz (które to są ładowane w pętli przez php). Dlatego też skrypt działał tylko w pierwszym formularzu. Sprawę rozwiązało umieszczenie skryptu w metodzie $(window).load();. Pozdrawiam i jeszcze raz dzięki! Że niby co ? $(document).ready(function() { //kod }); wewnątrz metody ready() skrypty zaczynają się wykonywać dopiero po zaczytaniu całego DOM'a ! W takim wypadku może miałeś jakąś funkcję poniżej kodu wykonywalnego, bo $(window).load() na bank nie naprawił Ci skryptu. Polecam: http://api.jquery.com/ready/ |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 00:42 |