Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL] Formularz na stronie
jg44
post
Post #1





Grupa: Zarejestrowani
Postów: 122
Pomógł: 14
Dołączył: 14.07.2011
Skąd: Gliwice / Wrocław

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


Witam,
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:
  1. class Announcement
  2. {
  3. protected $message;
  4. protected $level;
  5. protected $date;
  6.  
  7. function setMessage($message)
  8. {
  9. $this->message = $message;
  10. }
  11.  
  12. function setLevel($level)
  13. {
  14. $this->level = $level;
  15. }
  16.  
  17. function setDate($date)
  18. {
  19. $this->date = $date;
  20. }
  21.  
  22. function getMessage($message)
  23. {
  24. return $this->message;
  25. }
  26.  
  27. function getLevel($level)
  28. {
  29. return $this->level;
  30. }
  31.  
  32. function getDate($date)
  33. {
  34. return $this->date;
  35. }
  36.  
  37. function addAnnouncement()
  38. {
  39. $written = date("d-m-Y H:i:s");
  40. $error = 0;
  41.  
  42. $r = mysql_query("SELECT nazwa_uzytkownika FROM uzytkownicy WHERE login='".$_SESSION['login']."'");
  43. while ($l = mysql_fetch_array($r))
  44. {
  45. $user_name = $l['nazwa_uzytkownika'];
  46. }
  47.  
  48. if(empty($this->message))
  49. {
  50. $error++;
  51. echo "<h4 class=\"error\">Proszę podać treść ogłoszenia.</h4>";
  52. }
  53.  
  54. if(empty($this->level))
  55. {
  56. $error++;
  57. echo "<h4 class=\"error\">Proszę wybrać poziom.</h4>";
  58. }
  59.  
  60. if(empty($this->date))
  61. {
  62. $error++;
  63. echo "<h4 class=\"error\">Proszę podać datę.</h4>";
  64. }
  65.  
  66. if($error == 0)
  67. {
  68. mysql_query("INSERT INTO ogloszenia (tresc, kiedy, poziom, nazwa_kto_napisal, data_napisania) VALUES ('$this->message','$this->date','$this->level','$user_name','$written')");
  69. echo "<h5 class=\"correct\">Ogłoszenie zostało dodane.</h5>";
  70. }
  71. }
  72.  
  73. function printAnnouncement()
  74. {
  75. $r = mysql_query("SELECT * FROM ogloszenia WHERE nazwa_kto_napisal NOT LIKE '%*' ORDER BY ID DESC");
  76. while ($l = mysql_fetch_array($r))
  77. {
  78. echo "<hr />";
  79. echo $l['tresc']. "<br />";
  80. echo $l['kiedy']. "<br />";
  81. echo $l['poziom']. "<br />";
  82. echo $l['nazwa_kto_napisal']. "<br />";
  83. echo $l['data_napisania']. "<br />";
  84. echo "<a href='ogloszenie_odpowiedz.php?who={$l['nazwa_kto_napisal']}&id={$l['ID']}'>Odpowiedz na ogłoszenie</a>";
  85. }
  86. if(mysql_num_rows($r) == 0)
  87. {
  88. echo "<h5 class=\"correct\">Twoje ogłoszenie może być pierwsze.</h5>";
  89. }
  90. }
  91. } // koniec klasy
  92.  
  93. if(isset($_SESSION['zalogowany']))
  94. {
  95. ?>
  96. <form action="ogloszenie.php" method="post" id="formularz">
  97. <table>
  98. <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>
  99. <tr><td>Wybierz poziom:</td><td>
  100. <input type="radio" name="level" value="Początkujący" />Początkujący<br />
  101. <input type="radio" name="level" value="Średniozaawansowany" />Średniozaawansowany<br />
  102. <input type="radio" name="level" value="Zaawansowany" />Zaawansowany<br />
  103. <input type="radio" name="level" value="Bez znaczenia" />Bez znaczenia<br />
  104. </td></tr>
  105. <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>
  106. </table>
  107. <br />
  108. <input type="submit" name="wyslany" id="guzik" value="Dodaj wpis" />
  109. </form>
  110. <?php
  111. $entry = new Announcement();
  112. $entry->printAnnouncement();
  113.  
  114. if(isset($_POST['wyslany']))
  115. {
  116. extract($_POST);
  117.  
  118. $entry->setMessage($message);
  119. $entry->setLevel($level);
  120. $entry->setDate($date);
  121. $entry->addAnnouncement();
  122. }
  123. }
  124. else
  125. {
  126. echo "Nie jesteś zalogowany.<br />";
  127. }
  128. ?>

Z góry dziękuję za pomoc.

Ten post edytował jg44 25.10.2011, 20:19:25
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 6.10.2025 - 15:09