Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Przesłanie formularza do zmiennej
Forum PHP.pl > Forum > Przedszkole
smiesznylolek
uczę się powoli php obiektowego. Mam taki problem, zapewne banalny. Mam klase Page.php, gdzie mam "opis" strony(tytul, sciezki do css) i zmienną $zawartosc która służy go wyświetlenia głównej zawartości strony. mam jeszcze klase User, gdzie mam między innymi formularz rejestracyjny. Mam taki kod (działający):
  1. <?php
  2. require 'Page.php';
  3. require 'User.php';
  4. class register extends Page{
  5. function showContent() {
  6. echo '<section class="content">';
  7. $form = new User(); //instancja klasy
  8. $form->userForm(); // tworzenie formularz
  9. echo '</section>';
  10. }
  11.  
  12. }
  13. $stronaglowna = new register();
  14.  
  15.  
  16. $stronaglowna->show();
  17. ?>


ale chciałbym żeby ten kod wyglądał w taki sposób, tyle że w tym wypadku formularz tworzy się przed '<section class="content">';, przez co formularz nie jest tam gdzie powinien.. I nie wiem w jaki sposób go wywołaś żeby go "przesłać" zmienną $zawartosc :

  1. require 'Page.php';
  2. require 'User.php';
  3. class register extends Page{
  4. function showContent($zawartosc) {
  5. echo '<section class="content">';
  6. echo $zawartosc;
  7. echo '</section>';
  8. }
  9.  
  10. }
  11. $form = new User();
  12.  
  13. $stronaglowna = new register();
  14.  
  15. $stronaglowna->zawartosc = $form->userForm();
  16.  
  17. $stronaglowna->show();
  18. ?>
werdan
Co masz w $form->userForm(); ? Wklej jak mozesz.
smiesznylolek
mam tam formularz.
  1. function userForm(){
  2. echo' <form action="User.php" method="POST" >
  3. <div class="box">
  4. <h1>Formularz rejestracyjny :</h1>
  5. <label>
  6. <span>Nazwa użytkownika</span>
  7. <input type="text" class="wpis" name="nazwa" id="nazwa"/>
  8. </label>
  9. <label>
  10. <span>E-mail :</span>
  11. <input type="text" class="wpis" name="email" id="email"/>
  12. </label>
  13. <label>
  14. <span>Hasło</span>
  15. <input type="text" class="wpis" name="haslo" id="temat"/>
  16. </label>
  17. <label>
  18. <span>Powtórz hasło</span>
  19. <input type="text" class="wpis" name="haslo2" id="temat"/>
  20. </label>
  21. <input type="submit" class="button" value="Wyślj" />
  22. </div>
  23. </form>';
  24.  
  25. }
Turson
W metodzie klasy nie powinno się używać żadnego HTMLa czy echo. Metoda zwraca tylko wartość
smiesznylolek
wiem, ale tak jak napisałem, zaczynam z OOP więc nie chcę od razu dokładać do tego MVC czy jakiegoś innego wzorca, narazie chce ogólnie poznać PHP obiektowe dlatego robię tak jak robię, więc czy ktoś ma pomysł co z tym zrobić?
ctom
Cytat(smiesznylolek @ 10.12.2013, 17:32:11 ) *
czy ktoś ma pomysł co z tym zrobić?


tak,przeczytaj to co napisał @Turson w ostatnim zdaniu
Turson
Cytat(smiesznylolek @ 10.12.2013, 17:32:11 ) *
wiem, ale tak jak napisałem, zaczynam z OOP więc nie chcę od razu dokładać do tego MVC czy jakiegoś innego wzorca, narazie chce ogólnie poznać PHP obiektowe dlatego robię tak jak robię, więc czy ktoś ma pomysł co z tym zrobić?

Nieważne czy korzystasz z MVC czy nie, w programowaniu obiektowym metoda zwracasz tylko wartość.
Zalecam przeczytać jakiś dobry artykuł, bo nabierasz złych nawyków.
smiesznylolek
Cytat(Turson @ 10.12.2013, 22:40:47 ) *
Nieważne czy korzystasz z MVC czy nie, w programowaniu obiektowym metoda zwracasz tylko wartość.
Zalecam przeczytać jakiś dobry artykuł, bo nabierasz złych nawyków.

a czy w takim wypadku mógłbyś polecić jakiś dobry artykuł, co zazwyczaj w tutkach czy książkach są właśnie takie przykłady...
Turson
http://wortal.php.pl/phppl/Wortal/Artykuly...-praktyce/Wstep
Często tutoriale zawierają niby błędy - echo itp w metodach, ale to de facto tam błędem nie jest, bo ma wprowadzić do obiektowówki. Jednak to nie znaczy, że tak się pisze.
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.