Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Przekazanie danych z metody do formularza
Forum PHP.pl > Forum > Przedszkole
jg44
Witam,
mam taką klasę:
  1. class Comment
  2. {
  3. public $name;
  4. public $message;
  5.  
  6. // (...)
  7.  
  8. public function setName($name)
  9. {
  10. $this->name = $name;
  11. }
  12.  
  13. public function setMessage($message)
  14. {
  15. $this->message = $message;
  16. }
  17.  
  18. public function printComments()
  19. {
  20. $r = mysql_query("SELECT * FROM ksiega WHERE ID='$this->id'")or die(mysql_error());
  21. while($l = mysql_fetch_array($r))
  22. {
  23. $name = $l['nazwa'];
  24. $message = $l['tresc'];
  25. }
  26. }
  27.  
  28. // (...)
  29.  
  30. }

Formularz:
  1. <form action="index.php" method="post">
  2. <input type="text" value="<?php ?>" name="name" /><br />
  3. <textarea cols="40" rows="6" name="message"><?php ?></textarea><br />
  4. <input type="submit" name="wyslany" value="Dodaj" />
  5. </form>

W jaki sposób przekazać zmienne $name i $message z metody printComments() do formularza?
rocktech.pl
Witam.

Edycja , źle zrozumiałem pytanie.

Metoda printComments nic nie zwraca. a powinna zwrócić np. tablicę która potem sobie przelecisz.

  1. $comment = new Comment();
  2. foreach($comment->printComments() as $val) {
  3. echo '<form action="index.php" method="post">
  4. <input type="text" value="'.$val['nazwa'].'" name="name" /><br />
  5. <textarea cols="40" rows="6" name="message">'.$val['tresc'].'</textarea><br />
  6. <input type="submit" name="wyslany" value="Dodaj" />
  7. </form>';
  8. }
jg44
Cytat(rocktech.pl @ 7.01.2012, 11:18:53 ) *
Metoda printComments nic nie zwraca. a powinna zwrócić np. tablicę która potem sobie przelecisz.

Też racja. smile.gif
EDIT: zrobiłem teraz coś takiego:
  1. public function printComments()
  2. {
  3. $tablica = array();
  4. $r = mysql_query("SELECT nazwa,tresc FROM ksiega WHERE ID=3")or die(mysql_error());
  5. while($l = mysql_fetch_array($r))
  6. {
  7. $tablica[] = $l['nazwa'];
  8. $tablica[] = $l['tresc'];
  9. }
  10. //print_r($tablica);
  11. return $tablica;
  12. }

Formularz:
  1. foreach($entry->printComments() as $indeks)
  2. {
  3. echo '<form action="index.php" method="post">
  4. <input type="text" value="'.$indeks['nazwa'].'" name="name" /><br />
  5. <textarea cols="40" rows="6" name="message">'.$indeks['tresc'].'</textarea><br />
  6. <input type="submit" name="wyslany" value="Dodaj" />
  7. </form>';
  8. }

To nie działa - drukowane są dwa formularze - pierwszy z wartościami z tabeli o ID=1, drugi - o ID=2, dla zapytań z ID>3 zwraca to samo, co dla ID=2. Co namieszałem?

EDIT: już sobie poradziłem, tak to należało zrobić:
  1. public function printComments()
  2. {
  3. $tablica = array();
  4. $r = mysql_query("SELECT nazwa,tresc FROM ksiega WHERE ID=7")or die(mysql_error());
  5. while($l = mysql_fetch_array($r))
  6. {
  7. $tablica[] = $l['nazwa'];
  8. $tablica[] = $l['tresc'];
  9. }
  10. return $tablica;
  11. }

Formularz:
  1. <?
  2. include_once("model/Model.php");
  3. $entry = new Model();
  4. $tab = $entry->printComments();
  5. ?>
  6. <form action="index.php" method="post">
  7. <input type="text" value="<? echo $tab[0]; ?>" name="name" /><br />
  8. <textarea cols="40" rows="6" name="message"><? echo $tab[1]; ?></textarea><br />
  9. <input type="submit" name="wyslany" value="Dodaj" />
  10. </form>
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.