Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Pomyślnie edytowanie danych
Fezq
post
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 31.01.2010

Ostrzeżenie: (10%)
X----


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. }


Ten post edytował Fezq 19.10.2010, 17:50:39
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
kokers
post
Post #2





Grupa: Zarejestrowani
Postów: 154
Pomógł: 33
Dołączył: 18.10.2010
Skąd: Katowice

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


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. }
Go to the top of the page
+Quote Post
Fezq
post
Post #3





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 31.01.2010

Ostrzeżenie: (10%)
X----


Ok dzięki, poradziłem sobie właśnie wykorzystując isset. Temat można zamknąć, chyba że ma ktoś jeszcze jakieś inne sugestie.
Go to the top of the page
+Quote Post

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: 23.08.2025 - 11:13