Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Zmienne między funkcjami lub w klasie nie przechodzą, [rozwiązane] - przekazywanie zmiennych między dwiema funkcjami
JaNieWiem
post 16.03.2014, 15:39:26
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 16.03.2014

Ostrzeżenie: (0%)
-----


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

Ten post edytował JaNieWiem 16.03.2014, 16:20:38
Go to the top of the page
+Quote Post
Turson
post 16.03.2014, 16:05:01
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


  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

Ten post edytował Turson 16.03.2014, 16:06:04
Go to the top of the page
+Quote Post
JaNieWiem
post 16.03.2014, 16:09:14
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 16.03.2014

Ostrzeżenie: (0%)
-----


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 =(

Ten post edytował JaNieWiem 16.03.2014, 16:11:05
Go to the top of the page
+Quote Post
Turson
post 16.03.2014, 16:10:54
Post #4





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


nie usunąc var, dać dostępność zmiennej np public $textarea;
Go to the top of the page
+Quote Post
JaNieWiem
post 16.03.2014, 16:13:05
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 16.03.2014

Ostrzeżenie: (0%)
-----


Dodałem public zamiast VAR (inaczej - czy to przed czy po 'var' pojawiał się błąd), lecz dalej nie działa

Ten post edytował JaNieWiem 16.03.2014, 16:13:32
Go to the top of the page
+Quote Post
Turson
post 16.03.2014, 16:15:05
Post #6





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


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();
Go to the top of the page
+Quote Post
JaNieWiem
post 16.03.2014, 16:18:11
Post #7





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 16.03.2014

Ostrzeżenie: (0%)
-----


Działa! Dziękuję Ci serdecznie! :-)
Brakowało if(isset($_POST[$this->submitbutton])) itd. itd. smile.gif

Ten post edytował JaNieWiem 16.03.2014, 16:19:16
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 02:09