mam pewien problem z formularzem dodawania ogłoszeń na stronie. Idea jest taka, że zalogowany użytkownik wchodzi na stronę z formularzem, wypełnia go i po kliknięciu przycisku 'Dodaj' zawartość formularza jest zapisywana w tabeli w bazie, i następnie cała zawartość tej tabeli jest drukowana na tej stronie.
Problem polega na tym, że po kliknięciu przycisku wszelkie informacje dotyczące wysłania formularza (czyli komunikaty o błędnym wypełnieniu, czy komunikat o poprawnym wypełnieniu) pokazują się na samym dole strony pod wszystkimi ogłoszeniami. Drugi problem jest taki, że po dodaniu nowego ogłoszenia, nie pojawia się ono na stronie, mimo że strona jest przeładowywana.
Jestem bardzo początkujący w tematyce OOP, proszę o pomoc.
Kod jest następujący:
class Announcement { protected $message; protected $level; protected $date; function setMessage($message) { $this->message = $message; } function setLevel($level) { $this->level = $level; } function setDate($date) { $this->date = $date; } function getMessage($message) { return $this->message; } function getLevel($level) { return $this->level; } function getDate($date) { return $this->date; } function addAnnouncement() { $written = date("d-m-Y H:i:s"); $error = 0; $r = mysql_query("SELECT nazwa_uzytkownika FROM uzytkownicy WHERE login='".$_SESSION['login']."'"); while ($l = mysql_fetch_array($r)) { $user_name = $l['nazwa_uzytkownika']; } if(empty($this->message)) { $error++; echo "<h4 class=\"error\">Proszę podać treść ogłoszenia.</h4>"; } if(empty($this->level)) { $error++; echo "<h4 class=\"error\">Proszę wybrać poziom.</h4>"; } if(empty($this->date)) { $error++; echo "<h4 class=\"error\">Proszę podać datę.</h4>"; } if($error == 0) { mysql_query("INSERT INTO ogloszenia (tresc, kiedy, poziom, nazwa_kto_napisal, data_napisania) VALUES ('$this->message','$this->date','$this->level','$user_name','$written')"); echo "<h5 class=\"correct\">Ogłoszenie zostało dodane.</h5>"; } } function printAnnouncement() { $r = mysql_query("SELECT * FROM ogloszenia WHERE nazwa_kto_napisal NOT LIKE '%*' ORDER BY ID DESC"); while ($l = mysql_fetch_array($r)) { echo "<hr />"; echo $l['tresc']. "<br />"; echo $l['kiedy']. "<br />"; echo $l['poziom']. "<br />"; echo $l['nazwa_kto_napisal']. "<br />"; echo $l['data_napisania']. "<br />"; echo "<a href='ogloszenie_odpowiedz.php?who={$l['nazwa_kto_napisal']}&id={$l['ID']}'>Odpowiedz na ogłoszenie</a>"; } if(mysql_num_rows($r) == 0) { echo "<h5 class=\"correct\">Twoje ogłoszenie może być pierwsze.</h5>"; } } } // koniec klasy if(isset($_SESSION['zalogowany'])) { ?> <form action="ogloszenie.php" method="post" id="formularz"> <table> <tr><td>Treść wpisu:</td><td><input type="text" name="message" maxlength="50" size="50" class="pole" onfocus="ramka(this, 'aktywny');" onblur="ramka(this, 'nieaktywny');" /></td></tr> <tr><td>Wybierz poziom:</td><td> <input type="radio" name="level" value="Początkujący" />Początkujący<br /> <input type="radio" name="level" value="Średniozaawansowany" />Średniozaawansowany<br /> <input type="radio" name="level" value="Zaawansowany" />Zaawansowany<br /> <input type="radio" name="level" value="Bez znaczenia" />Bez znaczenia<br /> </td></tr> <tr><td>Termin:</td><td><input type="text" name="date" maxlength="50" size="50" class="pole" onfocus="ramka(this, 'aktywny');" onblur="ramka(this, 'nieaktywny');" /></td></tr> </table> <br /> <input type="submit" name="wyslany" id="guzik" value="Dodaj wpis" /> </form> <?php $entry = new Announcement(); $entry->printAnnouncement(); { $entry->setMessage($message); $entry->setLevel($level); $entry->setDate($date); $entry->addAnnouncement(); } } else { } ?>
Z góry dziękuję za pomoc.