Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][JAVA]Pytanie o interakcje na stronie
Forum PHP.pl > Forum > Przedszkole
kinder26
czy da się zrobić za pomocą php ze jeśli klikne na dany link na stronie to strona np. załaduje się jeszcze raz ale ze zmienionymi danymi

np. otwieram stronę np www.jaskis-sklep.pl tam się loguje i się pojawia np. moje zamówione produkty
no i jest ich kilka np.

Jakas ksiazka anuluj
płyta cd anuluj
pluszowy mis anuluj
itp

chodzi o to ze jak klikne na anuluj np. dla płyty cd to sie zaladuje jeszcze raz ta strona ale już z usunięta ta pozycja z bazy danych czyli samo

Jakas ksiazka anuluj
pluszowy mis anuluj

chodzi o to czy da się tak zrobić aby wykonać jakąś interakcje np. usuwania z bazy danych czegoś po kliknięciu w to słowo (on clik)

pytam się czy da się tak zrobić za pomocą php czy jednak trzeba do tego używać np. JAVa itp
Black-Berry
Odpowiedź jest jedna:) Wszystko się da winksmiley.jpg

-> Jeśli chcesz usunąć cos z bazy za pomocą kliknięcia to przekierowujesz coś na link np. index.php?action=remove&id=3; W górnej części skryptu musisz umieścić blok który pobierze akcję z adresu (tablica $_GET) a potem przekieruje spowrotem do koszyka za pomocą instrukcji header. Zalety tego rozwiązania to prostota. Wady: mała dynamika.

-> Dynamicznie robi się za pomocą AJAX'a ale nie chcę tego tłumaczyć bo nie jestem expertem od AJAXA. Na pewno jest to trudniejsza droga. Nie zawsze lepsza.
kinder26
wielkie dzięki Black-Berry teraz przynajmniej wiem jak się za to złapać

będę próbował z PHP

pozdrawiam

P.S
jak byś mógł to podaj mi nazwę jak się nazywa to tworzenie linków index.php?action=remove&id=3
to bym sobie o tym coś poszukał na Google bo nie wiem co wpisać w wyszukiwarce
Black-Berry
Nie ma chyba na to nazwy ale mogę Ci dać prosty przykład:

  1. <?php
  2. if (isset($_GET['action'])) {
  3. switch ($_GET['action'])
  4. {
  5. case 'delete_item':
  6. usun_z_bazy_element(GET['id']);
  7. break;
  8. case 'move_item_up':
  9. przesun_w_gore_listy_element(GET['id']);
  10. break;
  11. }
  12. header('location: index.php'); 
  13. exit; // wazny exit bo header uaktywnia sie dopiero po zakonczeniu skryptu;
  14. }
  15.  
  16. print '<a href="?action=delete_item&id=1">usun element pierwszy</a>';
  17. print '<a href="?action=delete_item&id=2">usun element drugi</a>'; 
  18. print '<a href="?action=move_item_up&id=1">przesun element pierwszy</a>';
  19. print '<a href="?action=move_item_up&id=2">przesun element drugi</a>';
  20. ?>


możesz sobie też stworzyć osobny plik na część ktura przełacza akcje i nazwać go np controler.php. Wtedy dołaczasz go na początku skryptu za pomocą include, include_once albo require.

Nie wiem czy to idealne rozwiązanie. Ja takie coś stosuję. Chętnie bym usłyszał jakieś potwierdzenie mojej metody. Może ktoś się dopisze i powie co o tym sądzi?
kinder26
Black-Berry nie wiem czy to dobrze ale ja poprostu uzylem odswiezenia strony z html
  1. <meta http-equiv=\"Refresh\" content=\"0; url=index.php\" />


bo jak dam header to mi wyskauja bledy nie wiem od czego

Warning: Cannot modify header information - headers already sent by (output started at D:\Program Files\EasyPHP 2.0b1\www\head.php:169)

ale to chyba w nieczym nie przeszkadza??

w kazdym razie dzieki Twojemu przykladowi udalo mi sie cos takiego zrobic i jak narazie dziala dzieki bede dalej to rozwijał
pozdrawiam
Black-Berry
  1. <?php
  2. if (isset($_GET['action'])) {
  3. switch ($_GET['action'])
  4. {
  5. case 'delete_item':
  6. usun_z_bazy_element(GET['id']);
  7. break;
  8. case 'move_item_up':
  9. przesun_w_gore_listy_element(GET['id']);
  10. break;
  11. }
  12. header('location: index.php'); 
  13. exit; // wazny exit bo header uaktywnia sie dopiero po zakonczeniu skryptu;
  14. }
  15. ?>
ten kod powinien być wstawiony przed wszystkim innym. Nawet przed znacznikiem <html> i jakąkolwiek spacją. Jeśli i to nie pomoże to sciągnij sobie notepad++ i zapisz jako NO-BOOM. Nie stosuj przegladarki do odświeżania worriedsmiley.gif
kinder26
wow super działa wszystko luks guitar.gif wielkie dzięki Black-Berry
pozdro
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.