Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][AJAX] Zmiana stanu bazy + reload div'a
Forum PHP.pl > Forum > Przedszkole
tmgryf
Potrzebuje idei jak zrobić takie coś:

Mam listę logów - w niej wpis np:

ktostam sie zalogowal z uprawnieniami administracyjnymi [usun wpis]

co powinienem zrobić aby po wciśnięciu [usuń wpis] wpis się usunął plus div przeladował z np. logi.php

moglbym dodac akcje np. logi.php?action=delete&id=xx, to połowicznie by mi załatwiło sprawe bo jeśli będę miał wpis np:

ktostam usunal artykul "bla bla" [zatwierdz akcje (usuń naprawde bo teraz jest tylko niewyswietlany, usun ten wpis i przeladuj diva)] [cofnij usuniecie czyli zrob display=1 i usun ten wpis i przeladuj diva]

Ma ktoś pomysł jak zrobić takie coś, bo na artykach to sie nie konczy - sa jeszcze zdjecia, opisy zdjec, informacje czlonkowie itp..
Fishu
Po prostu zrób coś takiego:
Administrator zalogował się do panelu [<div id='del' onClick='delLog()'>Usuń wpis</div>]
I w js zrób funkcję, która będzie otwierała plik, który będzie usuwał wpis (wynik przypisuj do div'a o id = 'del')
tmgryf
no to bedzie to rozwiazanie polowiczne.... bo nie problem jest usunac tylko wpis z bazy i z wyswietlania, ale jak ma sie wiele opcji do zatwoerdzenia ktore sa pozapisywane w rozny sposob np. artykuly w jednej tabeli informacje w innej itd

szukam jakiegos sprytnego rozwiazania calosciowego - zalemi np na tym aby wszelkie edycje np wiazalyby sie z zachowaniem poprzedniej w bazie...

chyba mam goraczke i za duzo majacze.... cos wykombinuje.....
erix
Cytat
wpis się usunął plus div przeladował z np. logi.php

Właściwe usuwanie przez AJAX, a usuwanie div - removeChild z DOM: https://developer.mozilla.org/En/DOM/Node.removeChild

Cytat
Ma ktoś pomysł jak zrobić takie coś, bo na artykach to sie nie konczy - sa jeszcze zdjecia, opisy zdjec, informacje czlonkowie itp..

Jeśli chodzi Ci o coś w stylu "cofnij", to można inaczej: w JS robisz sobie tablicę czynności. I sobie user przestawia, co chce, potem klika na "zapisz", a wtedy JS wysyła po kolei żądania do serwera.

Uściślij troszkę. winksmiley.jpg
tmgryf
logi sa ostatnia linia oporu walki ze szkodami jakie moze wyrzadzic user jak bedzie mial wieksze uprawnienia np, zlosliwie usunac artykul, przeedytowac,zjecia pousuwac, pozmieniac komentarze itp - w sumie w tym momencie tylko ja moge wyrzadzic takie szkody, ale kiedys to pewnie sie zmieni i bede potrzebowal narzedzia cofania zmian - na wszelki wypadek. najszesciej dokonuje czegokolwiek w tkim stylu np. albumy.php?action=delete lub edit i tak sobie teraz pomyslalem ze skoro muzse przerobis czesc kodu istniejacego z zapytania sql delete/update na odpowiednio update set display=0 / insert nowe cokolwiek a stare set display=0 to moze stara komende sql bede sobie zapisywal w bazie (i w razie czego bede ja wykonywal) tylko teraz pytanie jak bezpiecznie to zrobic? - cos na ksztalt myphpadmin, a skoro chce by byl to ajax to jak przepchac "bezpiecznie" komende sql ajaxem?

Moze macie podobne rozwiazania w lepszej formie?
erix
Cytat
najszesciej dokonuje czegokolwiek w tkim stylu np. albumy.php?action=delete lub edit i tak sobie teraz pomyslalem ze skoro muzse przerobis czesc kodu istniejacego z zapytania sql delete/update na odpowiednio update

Poszukaj sobie o CSRF

Cytat
cos na ksztalt myphpadmin, a skoro chce by byl to ajax to jak przepchac "bezpiecznie" komende sql ajaxem?

Sory, ale nie rozumiem problemu.
esiek
AJAX.JS
  1. //////Funkcja gerData
  2. var ObiektXMLHttp = false;
  3. if (window.XMLHttpRequest)
  4. {
  5. ObiektXMLHttp = new XMLHttpRequest(); }
  6. else if (window.ActiveXObject)
  7. {
  8. ObiektXMLHttp = new ActiveXObject("Microsoft.XMLHTTP"); }
  9. function getData(zrodlo, cel) {
  10. if(ObiektXMLHttp)
  11. {
  12. var cel = document.getElementById(cel);
  13. ObiektXMLHttp.open("GET", zrodlo);
  14. ObiektXMLHttp.onreadystatechange = function()
  15. {
  16.  
  17. if (ObiektXMLHttp.readyState == 4){cel.innerHTML = ObiektXMLHttp.responseText;}
  18.  
  19. }
  20. ObiektXMLHttp.send(null); } }




wysołujesz scrypt tak

  1. <a HREF="java script:onclick=getData('folder/plik.php?zmienna=wartosc', 'div')">Usuń</A>



gdzie

przykladowy wpis wyswietlasz w divie

  1. <div id=$id_wpisu>wpis bla bla bla</div>


i wyołując

  1. <a HREF="java script:onclick=getData('folder/plik.php?zmienna=$id_wpisu', '$id_wpisu')">Usuń</A>



jezeli w pliku nie bedzie zadnego tekstu tylko funkcja usuwająca rekord z bazy danych to div poprostu zniknie a calosc sie przesunie w góre winksmiley.jpg ja sam tego uzywam winksmiley.jpg pozdrawiam winksmiley.jpg

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.