Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Pomyślnie edytowanie danych
Forum PHP.pl > Forum > Przedszkole
Fezq
Witam,

mam pytanie dotyczące edytowania danych w bazie MYSQL. Wszystko mi się dobrze edytuje jednak mam inny problem.
Po wciśnięciu przycisku Akceptuj, strona mi się przeładowuje, tekst o poprawnej edycji się wyświetla, czyli niby wszystko ok. Jednak w textarea nadal pozostaje tekst, który był tam jeszcze przed edycją. Czyli niestety muszę korzystać z F5... Screen.
header("Location: "); odpada, bo po tym owszem w textarea jest już aktualny tekst, jednak nie pojawia się informacja o poprawnym dodaniu rekordu do bazy.

Podsumowując chciałbym osiągnąć taki efekt, aby po edycji w textarea wyświetlił mi się w niej aktualny tekst, a także informacja o poprawnym dodaniu rekordu.


KOD #1 - wyświetla się stary tekst i wyświetla się informacja o dodaniu rekordu
  1. $ok = trim($_POST['ok']);
  2. $result = mysql_query("SELECT * FROM notatki WHERE id='1'");
  3. $row = mysql_fetch_array($result);
  4. echo '<form name="" method="POST">
  5. <textarea name="tekst" rows="10" cols="180">'.nl2br(stripslashes($row['tekst'])).'</textarea>
  6. </td></tr>
  7. <tr>
  8. <td class="trow1" width="50%"><center><input type="submit" name="ok" value="Akceptuj"/></center></td></tr>';
  9. if ($ok == 'Akceptuj')
  10. {
  11. $tekst = mysql_real_escape_string(trim($_POST['tekst']));
  12. $query = @mysql_query("UPDATE notatki SET tekst='$tekst' WHERE id='1'");
  13. if($query)
  14. echo '<tr><td class="tcat3" width="50%"><img src="images/admin/add.gif"/> Dane zostały dodane poprawnie</td></tr>';
  15. else echo '<tr><td class="tcat4" width="50%"><img src="images/admin/error.gif"/> Błąd wprowadzania danych</td></tr>';


KOD #2 - wyświetla się nowy tekst, ale nie wyświetla się informacja o dodaniu rekordu
  1. $ok = trim($_POST['ok']);
  2. $result = mysql_query("SELECT * FROM notatki WHERE id='1'");
  3. $row = mysql_fetch_array($result);
  4. echo '<form name="" method="POST">
  5. <textarea name="tekst" rows="10" cols="180">'.nl2br(stripslashes($row['tekst'])).'</textarea>
  6. </td></tr>
  7. <tr>
  8. <td class="trow1" width="50%"><center><input type="submit" name="ok" value="Akceptuj"/></center></td></tr>';
  9. if ($ok == 'Akceptuj')
  10. {
  11. header("Location: admin.php");
  12. $tekst = mysql_real_escape_string(trim($_POST['tekst']));
  13. $query = @mysql_query("UPDATE notatki SET tekst='$tekst' WHERE id='1'");
  14. if($query)
  15. echo '<tr><td class="tcat3" width="50%"><img src="images/admin/add.gif"/> Dane zostały dodane poprawnie</td></tr>';
  16. else echo '<tr><td class="tcat4" width="50%"><img src="images/admin/error.gif"/> Błąd wprowadzania danych</td></tr>';
  17. }
kokers
skoro:

  1. <input type="submit" name="ok" value="Akceptuj"/>


To możesz skorzystać z czegoś takiego co się zwie isset.

wtedy masz:

  1. if(isset($_POST['ok']))
  2. {
  3.  
  4. //co sie ma wykonać jeśli user wdusił submit
  5. }elseif(!isset($_POST['ok']))
  6. {
  7. //co się ma wykonać zanim user wdusi submit
  8. }
Fezq
Ok dzięki, poradziłem sobie właśnie wykorzystując isset. Temat można zamknąć, chyba że ma ktoś jeszcze jakieś inne sugestie.
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.