Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Formularz jako funkcja
Forum PHP.pl > Forum > Przedszkole
Darek82
Mam taką funkcję zawierającą formularz i chcę ją wyświetlić, nie wiem dlaczego nie pojawia się.

  1. <?php
  2. function f_wyslij(){
  3. ?>
  4. <head>
  5.  
  6. <title>Administracja - wysyłanie nowych plików</title>
  7. </head>
  8. <body>
  9. <h1>Wysyłanie nowych plików informacyjnych</h1>
  10. <form enctype="multipart/form-data" action="wyslij.php" method="post">
  11. <input type="hidden" name="MAX_FILE_SIZE" value="1000000">
  12. Załaduj ten plik:<input name="plikuzytkownika" type="file">
  13. <input type="submit" value="Wyślij">
  14. </form>
  15. </body>
  16. </html>
  17.  
  18. <?php
  19. }
  20. ?>
!*!
  1. function f_wyslij()
  2. {
  3. return 'kod';
  4. }
  5.  
  6. echo f_wyslij();
zenb8w
  1.  
  2. <?php
  3. function f_wyslij(){
  4.  
  5. echo '<head>
  6.  
  7. <title>Administracja - wysyłanie nowych plików</title>
  8. </head>
  9. <body>
  10. <h1>Wysyłanie nowych plików informacyjnych</h1>
  11. <form enctype="multipart/form-data" action="wyslij.php" method="post">
  12. <input type="hidden" name="MAX_FILE_SIZE" value="1000000">
  13. Załaduj ten plik:<input name="plikuzytkownika" type="file">
  14. <input type="submit" value="Wyślij">
  15. </form>
  16. </body>
  17. </html>';
  18.  
  19. }
  20.  
  21. /*wywołujesz funkcję*/
  22. f_wyslij();
  23. ?>
!*!
zenb8w - nie ucz innych złych nawyków.
zenb8w
Cytat(!*! @ 19.03.2013, 11:23:43 ) *
zenb8w - nie ucz innych złych nawyków.


No dobra;)

  1. <?php
  2. function f_wyslij(){
  3.  
  4. $kod = '<head>
  5.  
  6. <title>Administracja - wysyłanie nowych plików</title>
  7. </head>
  8. <body>
  9. <h1>Wysyłanie nowych plików informacyjnych</h1>
  10. <form enctype="multipart/form-data" action="wyslij.php" method="post">
  11. <input type="hidden" name="MAX_FILE_SIZE" value="1000000">
  12. Załaduj ten plik:<input name="plikuzytkownika" type="file">
  13. <input type="submit" value="Wyślij">
  14. </form>
  15. </body>
  16. </html>';
  17.  
  18. return $kod;
  19.  
  20. }
  21.  
  22. /*wywołujesz funkcję*/
  23. echo f_wyslij();
  24. ?>
Darek82
Zadziałało dziekuje smile.gif Zastanawia mnie jednak dlaczego ten mój kod nie zadziałał, miałem wcześniej taki jak poniżej i działa a dużo się nie różni

  1. <?php
  2.  
  3. function f_menu_gorne(){
  4. ?>
  5. <html>
  6. <head>
  7. <title>Strona startowa</title>
  8. </head>
  9. <body>
  10. <div id="f_menu_gorne">
  11. <ul>
  12. <li><a href="dodaj_zlec.php">Dodaj zlecenie</a></li>
  13. <li><a href="historia_zlec.php">Historia zleceń</a></li>
  14. <li><a href="zaczytaj.php">Zaczytaj plik</a></li>
  15. </ul>
  16. </div>
  17. </body>
  18. </html>
  19. <?php
  20. }
  21.  
  22. ?>
!*!
Nie mógł działać, bo nic nie robisz, nie ma żadnej funkcji w tym. Wyświetlasz tylko html.
nospor
Ależ to ma prawo działać.... ino oprócz definicji funkcji, trzeba ją jeszcze wywołać....

f_menu_gorne();
smile.gif Wiem, przeciez to trudne wink.gif
Darek82
Nie nie może źle sie wyraziłem, obie funkcje tak jak przedstawiłem próbowałem wywołać i mimo że obie mają tylko trochę inny kod html tej f_menu_gorne() nie mogłem wywołać, wyświetlała sie pusta strona póki nie zrobiłem tego jak mi napisano tu, i tego nie rozumiem.
nospor
A jeteś pewien, że pokazałeś nam dokładnie kod jaki masz? Bo obie metody są poprawne
in5ane
Darku, chodzi o to, że funkcja jest to coś takiego, taka deklaracja w kodzie, która ma coś zwracać. Co znaczy return? To znaczy powrót, zwrot, odesłanie. Czy dajemy w funkcji return coś tam i ta funkcja po wywołaniu zwróci i wyświetli (lub coś zrobi) coś tam.
nospor
Cytat
która ma coś zwracać
Funkcja wcale nie musi nic zwracać. Funkcja może coś robić bez zwracania. W tym przypadku zadaniem funkcji jest wyświetlenie kodu na ekran a nie jego zwrócenie.
Darek82
Mój plik który wyświetlaobie funkcje to

  1. <?php
  2.  
  3. require_once('funkcje/funkcje.php');
  4. echo '<link rel="stylesheet" href="style.css" type="text/css" media="all"/>';
  5. f_menu_gorne ();
  6. f_wyslij();
  7.  
  8. ?>


plik z obiema funkcjami

  1. <?php
  2.  
  3. require_once('f_menu_gorne.php') ;
  4. require_once('f_wyslij.php') ;
  5.  
  6. ?>


Funkcja która się wyświetla

  1. <?php
  2.  
  3. function f_menu_gorne(){
  4. ?>
  5. <html>
  6. <head>
  7. <title>Strona startowa</title>
  8. </head>
  9. <body>
  10. <div id="f_menu_gorne">
  11. <ul>
  12. <li><a href="index.php">Strona startowa</a></li>
  13. <li><a href="dodaj_zlec.php">Dodaj zlecenie</a></li>
  14. <li><a href="historia_zlec.php">Historia zleceń</a></li>
  15. <li><a href="zaczytaj.php">Zaczytaj plik</a></li>
  16. </ul>
  17. </div>
  18. </body>
  19. </html>
  20. <?php
  21. }
  22.  
  23. ?>


Funkcja która się nie wyświetla

  1. <?php
  2. function f_wyslij(){
  3. ?>
  4. <head>
  5.  
  6. <title>Administracja - wysyłanie nowych plików</title>
  7. </head>
  8. <body>
  9. <h1>Wysyłanie nowych plików informacyjnych</h1>
  10. <form enctype="multipart/form-data" action="wyslij.php" method="post">
  11. <input type="hidden" name="MAX_FILE_SIZE" value="1000000">
  12. Załaduj ten plik:<input name="plikuzytkownika" type="file">
  13. <input type="submit" value="Wyślij">
  14. </form>
  15. </body>
  16. </html>
  17.  
  18. <?php
  19. }
  20. ?>


Moim celem było wyświetlenie tego manu i to mi się udało a poniżej taką samą metodą wstawić pole do wysłania pliku i to niestety nie zadziałało na moim pierwotnym kodzie i zastanawiam się dlaczego.
nospor
Przeglądarka -> źródło strony
A zobaczysz, że Twoja funkcja jednak się wyświetliła..... Ino nie jest widoczna, bo ty w pierwszej funkcji zamknąłeś już </BODY></HTML> - podstawy HTML :/
Darek82
Rzeczywiście teraz już jest dobrze smile.gif smile.gifsmile.gif, usunąłem <head> i <body> może bede je dodawał osobno poprostu po za tymi funkcjami, dziekuje za pomoc będę o tym pamietał!
in5ane
Cytat(nospor @ 21.03.2013, 09:34:13 ) *
Funkcja wcale nie musi nic zwracać. Funkcja może coś robić bez zwracania. W tym przypadku zadaniem funkcji jest wyświetlenie kodu na ekran a nie jego zwrócenie.

Masz też rację. Jednakże skoro uczymy nowicjusza, to nauczmy go podstaw. Jeszcze pamiętam Pascal, jak były procedury (namiastki funkcji) oraz funkcje. I to już tam się nauczyłem, że procedura ma coś wykonać (czyli uprościć główny program, aby nie było syfu w kodzie), a właśnie funkcja ma coś zwrócić (np. wykonać obliczenia i zwrócić wartość) i nie powinna mieć innego wpływu na główny program. Tak czy siak nie ma się co sprzeczać. Trzeba kolegę wyprowadzić na dobrą drogę. Jemu się tutaj zrobił bałagan ostatecznie przez niedbalstwo.
nospor
php to nie pascal. W php nie ma rozróżnienia na funkcje czy procedury. To że funkcja się nazywa funkcja, nie znaczy że zawsze ma coś zwracać. No ale proszę, jak się upierasz, że ma coś zwracać to proszę:
  1. function cos(){
  2. ?>
  3. kod HTML
  4. <?php
  5. return true;
  6. }

smile.gif
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.