![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 254 Pomógł: 3 Dołączył: 23.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Kombinuje pare godzin i nie moge dojść, zatemproszę mądrzejszych od siebie.
mam taki kod html:
i do tego próbuje taki ajax:
chciałbym aby po naciśnięciu na usuń (<a class="usun" href="#" title="usuń wiadomość">usuń</a>) z bazy usuwał się rekord o id = wiadomosc_#id, a także żeby z widoku na stronie znikał div o id wiadomosc_#id, nie bardzo mam już pomysł, co zrobic aby to działało. usun.php?usun=1 wpisane w ff elegancko usuwa rekord id=1 Ten post edytował @rtur 11.05.2011, 16:26:56 -------------------- Artur
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Kod data : { usun : parent.attr('id').replace('wiadomosc_','') } Do tego: 1. FireBug - zobaczysz sobie co ci zwraca itp 2. Sprawdzanie gdzie występują błąd - DEBUGOWANIE czyli: - czy skrypt JS wysłał odpowiednie dane w żądaniu ? - czy skrypt PHP odebrał poprawne dane, obrobił je i wykonał zaplanowane działania 3. var_dump 4. alert w js, lub console.log. W ten sposób od razu byś doszedł do punktu gdzie występuje błąd - gdybyś nadal nie wiedział to byś też tu napisał ale z innym pytaniem i konkretnym, czyli "dlaczego skrypt php nie odbiera poprawnych danych?" Przy okazji : Zamiast bawić się ID'kami możesz zrobić tak: I twedy: Kod data : { usun : parseInt($(this).attr('id_message')) } P.S. Wbijcie sobie w końcu do głowy przedszkolaki że Debugowanie to wasza tarcza i miecz :/ Ten post edytował melkorm 11.05.2011, 16:50:13 -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 254 Pomógł: 3 Dołączył: 23.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
pobawiłem się trochę firebugiem i wyszedł mi taki kod JS, który działa
Kod $('a.usun').click(function(e) { e.preventDefault(); var parent = $('.userInfo').parent(); $.ajax({ type: 'get', url: 'usun.php', data: { usun : parent.attr('id').replace('wiadomosc_','')}, beforeSend: function() { parent.animate({'backgroundColor':'#fb6c6c'},300); }, success: function() { parent.slideUp(300,function() { parent.remove(); }); } }); } ale pojawia się problem tego typu że zawartość tą mam pobieraną na początku do diva o id content i jest ona okresowo odświeżana i wtedy d... nie działa, jak treść jest w kodzie działa jak w divie nie działa Ten post edytował @rtur 12.05.2011, 00:05:45 -------------------- Artur
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 366 Pomógł: 261 Dołączył: 23.09.2008 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Zainteresuj się funkcją live w jQuery.
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 254 Pomógł: 3 Dołączył: 23.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
ja chyba tego .live nie ogarnę tak szybko
![]() jeżeli można to proszę o podpowiedź gdzie popełniam błąd że to nie działa. link do przykładu: http://piece-kra.pl/artur/ klikam archiwizuj i cisza, nic się nie dzieje na podglądzie konsoli firebuga -------------------- Artur
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 728 Pomógł: 76 Dołączył: 12.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
A masz tam klasę usun ? Bo ja jej nie widzę w źródle.
-------------------- gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet. Zarabianie bez wysiłku na domenach bez ruchu: prolink. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 254 Pomógł: 3 Dołączył: 23.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
klasa usun została zmieniona na archiwizuj, do usun się chyba nic nie odnosi tam w kodzie
![]() działa ![]() a tak cały kod js wygląda: Kod $(document).ready(function(){ function pobierzWiadomosci(){ $('#content').load('pobierz-wiadomosci.php', function() { $('a.archiwum_w').click(archiwizuj); }).fadeIn('fast'); }; $('.pobierzNoweWiadomosci').click(pobierzWiadomosci); $('#content').html(pobierzWiadomosci); function archiwizuj() { var parent = $('.userInfo').parent(); $.ajax({ type: 'get', url: 'archive.php', data: { archive : parent.attr('id').replace('wiadomosc_','')}, beforeSend: function() { parent.animate({'backgroundColor':'#fb6c6c'},300); }, success: function() { parent.slideUp(300,function() { parent.remove(); $('#content').html(pobierzWiadomosci); }); } }); } }); może można to jeszcze jakoś zoptymalizować ten kod? można to jeszcze jakoś zabezpieczyć żeby ktoś archiwizował wiadomości tylko z tego ajaxa a nie wpisując w przeglądarkę np archive.php?archive=1 ? -------------------- Artur
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat można to jeszcze jakoś zabezpieczyć żeby ktoś archiwizował wiadomości tylko z tego ajaxa a nie wpisując w przeglądarkę np archive.php?archive=1 ? A co ci szkodzi, że ktoś to zrobi z przeglądarki? Jak chce to jego sprawa ![]() To co idzie ajaxem równie dobrze może pójść normalnie. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 254 Pomógł: 3 Dołączył: 23.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
A co ci szkodzi, że ktoś to zrobi z przeglądarki? Jak chce to jego sprawa ![]() To co idzie ajaxem równie dobrze może pójść normalnie. W sumie racja, to tylko jedynie może zabezpieczę sesją zalogowany=tak żeby te operacje mogły wykonywać tylko osoby zalogowane. -------------------- Artur
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat to tylko jedynie może zabezpieczę sesją zalogowany=tak żeby te operacje mogły wykonywać tylko osoby zalogowane. Nie "może" a koniecznieMało tego: musisz jeszcze zrobić zabezpieczenie, by dany user mógł usuwać tylko swoje wiadomości a nie cudze -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 254 Pomógł: 3 Dołączył: 23.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Mało tego: musisz jeszcze zrobić zabezpieczenie, by dany user mógł usuwać tylko swoje wiadomości a nie cudze To mogę sobie darować bo to bedzie tzw skrzynka główna dla kilku userów to jeszcze spytam o taką drobnostkę. Jak wynik działania tego php do którego odnosi się ajax zwrócić na stronie z poziomu której wykonywałem funkcję? archive.php?archive=id_wiadomości zwraca "wiadomość zarchiwizowana" albo "wiadomość nie zarchiwizowana" i to chcę wyświetlić w konkretnym divie na mojej stronie z poziomu której wykonywałem te funkcję. Ten post edytował @rtur 13.05.2011, 09:28:02 -------------------- Artur
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Metoda success w parametrze wywołania zawiera dane zwrotne. Rób z nimi co chcesz
![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 254 Pomógł: 3 Dołączył: 23.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki, ale wynikł jeszcze inny problem
Mam w js funkcje usun()
i ona usuwała to co trzeba jak było url: 'wiadomosci.php?akcja=usun', tylko że zrobiłem sobie teraz w .htaccess przyjazne linki, i nie wiem co zrobić żeby link jaki jest wywoływany przez te funkcje wyglądał tak: Kod wiadomosci,usun.3 w tej postaci która jest w funkcji zwraca taki link: Kod wiadomosci,usun.?id=3 i wynik zwraca błąd 404 Ten post edytował @rtur 14.05.2011, 09:23:39 -------------------- Artur
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 1 447 Pomógł: 191 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
nie możesz dokleić tego id do
Kod url: 'wiadomosci,usun.', ?
-------------------- :)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 11:04 |