![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 6.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Jestem nowy w PHP i mam pewien problem. Robiąc stronę zrobiłem formularz zamówień. Wysyłałem metodą "post" i wciskałem klienta jako $klient = $_POST ['klient']; OK wszystko działało poprawnie i bez zarzutów...dopóki nie zacząłem składać całej strony w PHP, a nie tylko same zmienne formularza. Funkcję __set() zrozumiałem dosyć szybko jednak __get() już lipa. I teraz mam takie coś: klasa 'test' która ma pobierać zmienną $klient i wysyłać do innego pliku z klasą 'test wynik'. Klasa 'test wynik' ma zwyczajnie wyświetlać nazwę klienta. W pliku o nazwie: test funkcji.php -> <?php class test { public function __get($klient) { return $this->$klient; } public function Wyswietl_zawartosc() { ?> <form action="wynik_test_funkcji.php" method="GET" > <fieldset style="border:none"> <div>*Zamawiający:</div> <div><input type="text" style=" width:200px" maxlength="20" name="klient" /></div> <div><input type="image" src="img/zamow.jpg" alt="Zamów TAXI 1-91-94"/></div> </fieldset> </form> <?php } } $a = new test; $a->Wyswietl_zawartosc(); ?> ---------------------------------------------------------------------- Natomiast w pliku wynik_test_funkcji.php napisałem: <?php require ('test funkcji.php'); class test_wynik extends test { public function __set($nazwa, $wartosc) { $this->$nazwa = $wartosc; } public function Wyswietl_zmienna() { echo $this->klient ; } } $b=new test_wynik; $b->Wyswietl_zmienna(); ?> -------------------------------------------------------------------------- Proszę o wyrozumiałość, na serio w PHP siedze jakoś od miesiąca (IMG:style_emoticons/default/smile.gif) Z góry dzięki za pomoc! |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 97 Pomógł: 11 Dołączył: 2.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Tu masz nieźle wyjaśnione czym jest __get i __set http://tuxradar.com/practicalphp/6/14/2
W swojej klasie w żadnym momencie nie pobrałeś zawartości wysłanej z formularza. Po pierwsze to w pliku 'test' ta klasa Ci jest zbędna. Nie opakowuj wyświetlenia html'a (szczególnie, że nie jest dynamiczny) na siłę w php. Ten plik zostaw normalnie jako (x)html W pliku 'wynik_test_funkcji' jeśli koniecznie chcesz mieć obsługę tego przez klasę, to możesz np. zastosować coś takiego :
(pisane z palca ale powinno zadziałać) Pytanie brzmi tylko - po co ? Wydaje mi się, że w Twoim przypadku opakowywać w klasę tyle linijek kodu dla prostego zadania, jest przerostem formy nad tym czego w tej chwili potrzebujesz do obsługi strony (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 6.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
Wielkie dzięki!
Ogarnąłem jakoś (IMG:style_emoticons/default/smile.gif) Ale nie zrobiłem tego na klasie tylko tak jak napisałeś przez html'a puszczone. Koń ze mnie jeszcze jest ...uczę się, a człowiek uczy się na błędach. Jeszcze raz wielkie dzięki za pomoc (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.09.2025 - 19:11 |