Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zmienne między funkcjami lub w klasie nie przechodzą
Forum PHP.pl > Forum > Przedszkole
JaNieWiem
Witam serdecznie,

Jestem dość początkujący w PHP. Chciałbym w pliku func.php zamieścić dwie funkcje:

  1. function pisz($nazwa, $slij){
  2. echo "<form method = 'post' action = 'test4.php'>";
  3. echo "<input type = 'text' name = '$nazwa'>";
  4. echo "<input type = 'submit' name = '$slij' value = 'Zapisz'>";
  5. echo "</form>";
  6. }

  1. function sprawdz($slij){
  2.  
  3. if($_POST['$slij']){
  4. echo "Wysłane!";
  5. }
  6. }


Niestety, po wywołaniu (czy to po include na index.php czy to w test4.php) zmienna nie zostaje przekazana a co za tym idzie warunek nie może zostać spełniony.

Próbowałem zamienić wszystko w klasę

  1. class pisz{
  2.  
  3. var $textarea;
  4. var $submitbutton;
  5.  
  6. function pisz($textarea, $submitbutton){
  7. $this -> textarea = $textarea;
  8. $this -> submitbutton = $submitbutton;
  9. echo "<form method = 'post' action = 'test3.php'>";
  10. echo "<input type = 'text' name = '$textarea'>";
  11. echo "<input type = 'submit' name = '$submitbutton'>";
  12. echo "</form>";
  13. echo "$submitbutton <br>";
  14. echo "$textarea <br>";
  15. }
  16.  
  17. function sprawdz(){
  18. if($_POST['submitbutton']){
  19. echo "Wysłano";
  20. } else echo var_dump($submitbutton);
  21. }
  22. }
  23. $txt = txt;
  24. $send = send;
  25. $forma = new pisz($txt, $send);
  26. $forma;
  27. $forma -> sprawdz();


Ale niestety z tym samym rezultatem. Czy mogę prosić o pomoc? smile.gif Pozdrawiam! biggrin.gif
Turson
  1. var $textarea;
  2. var $submitbutton;

w PHP5 już nie używa się var

  1. if($_POST['submitbutton']){

W metodzie deklarujesz, że "name" submit jest zmienny, więc zmienny powinien być i tutaj. Jak już to $this -> submitbutton
JaNieWiem
Dziękuję za odpowiedź, poprawiłem jak mówisz i po usunięciu var dostaję błąd:
Cytat
Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in /test3.php on line 5
.

Więc var zostawiłem na razie, wprowadzając też $ tam, gdzie go nie było - ale niestety nic to nie zmieniło, nadal nie działa =(
Turson
nie usunąc var, dać dostępność zmiennej np public $textarea;
JaNieWiem
Dodałem public zamiast VAR (inaczej - czy to przed czy po 'var' pojawiał się błąd), lecz dalej nie działa
Turson
Działa
  1. <?php
  2. class pisz{
  3.  
  4. public $textarea;
  5. public $submitbutton;
  6.  
  7. function pisz($textarea, $submitbutton){
  8. $this -> textarea = $textarea;
  9. $this -> submitbutton = $submitbutton;
  10. echo "<form method = 'post' action = ''>";
  11. echo "<input type = 'text' name = '{$this->textarea}'>";
  12. echo "<input type = 'submit' name = '{$this->submitbutton}'>";
  13. echo "</form>";
  14. echo "$submitbutton <br>";
  15. echo "$textarea <br>";
  16. }
  17.  
  18. function sprawdz(){
  19. if(isset($_POST[$this->submitbutton])){
  20. echo "Wysłano";
  21. } else echo var_dump($this->submitbutton);
  22. }
  23. }
  24. $txt = "txt";
  25. $send = "send";
  26. $forma = new pisz($txt, $send);
  27. $forma -> sprawdz();
JaNieWiem
Działa! Dziękuję Ci serdecznie! :-)
Brakowało if(isset($_POST[$this->submitbutton])) itd. itd. 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.