Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Formularz
-Weqs-
post
Post #1





Goście







Witam, mam formularz, których domyślne wartości pól są pobierane z MySQL:
  1. <?php
  2. echo '<form method="post" action="admin.php?action=edytuj_newsy&id='.$query_data['0'].'">
  3. Autor: <input type="text" name="autor" value="'.$query_data_edit['1'].'"><br />
  4. Temat: <input type="text" name="temat" value="'.$query_data_edit['2'].'"><br />
  5.  Tresc: <input type="textarea" name="tresc" value="'.$query_data_edit['3'].'"><br />
  6. <input type="submit" value="Edytuj news"></form>';
  7. ?>

Chodzi o to, że ma to być formularz do edycji danych i jeżeli koleś zmieni "autora" oraz "temat", ale przykładowo zapomni o "treść", to chcę żeby wyświetliło ponownie formularz, z nowymi danymi, które jednak nie zostały jeszcze dodane do MySQL, bo przecież brakuje wartości jednegi pola. Mam właśnie problem z tym, żeby wyświetlić nowe wartości (czyli np po zaakceptowaniu formularza zamiast $query_data_edit['1'] ma byc $_POST['autor'] (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) ). Jak to zapisac w value najprościej, najefektywniej?

Mam nadzieje, że to o co mi chodzi jest proste do zrozumienia. Przykładowo na tym forum,kiedy edytujemy ustawienia konta to najpierw pojawia sie nam formularz z dotychczasowymi danymi, a później jeżeli je zmienimy, ale popełnimy błąd, to formularz pojawia się ponownie, ALE wpisane wczesniej wartosci sa nadal w formularzu i wystarczy tylko dopisac brakujace pola i nie trzeba wszystkiego robic od poczatku... tak tez chce zeby bylo u mnie. Pozdrawiam.
Go to the top of the page
+Quote Post
Kuziu
post
Post #2





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

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


  1. <?php
  2.  
  3. if(!isset($_POST['id']))
  4. $_POST['id'] = $query_data_edit['0'];
  5. if(!isset($_POST['autor']))
  6. $_POST['autor'] = $query_data_edit['1'];
  7. if(!isset($_POST['temat']))
  8. $_POST['temat'] = $query_data_edit['2'];
  9. if(!isset($_POST['tresc']))
  10. $_POST['tresc'] = $query_data_edit['3'];
  11.  
  12. echo '<form method="post" action="admin.php?action=edytuj_newsy&id='. $_POST['id'] .'">
  13. Autor: <input type="text" name="autor" value="' . $_POST['autor'] . '"><br />
  14. Temat: <input type="text" name="temat" value="' . $_POST['temat'] . '"><br />
  15.  Tresc: <input type="textarea" name="tresc" value="'. $_POST['tresc'] .'"><br />
  16. <input type="submit" value="Edytuj news"></form>';
  17. ?>


Możesz tez zamiast isset zastosować strlen(); czy coś

Ten post edytował Kuziu 24.02.2006, 23:43:38
Go to the top of the page
+Quote Post
TomASS
post
Post #3





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Możesz zrobić walidację przy pomocy JavaScript.

Albo wysłane (wpisane) dane zapamiętuj w sesji i po powrocie do formularza wyświetlaj dane z sesji.
Go to the top of the page
+Quote Post
jaco
post
Post #4





Grupa: Zarejestrowani
Postów: 115
Pomógł: 1
Dołączył: 15.01.2003

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


na przykladzie posta isset zawsze true (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ja bym zrobil tak:

  1. <?php
  2. if($_SERVER['REQUEST_METHOD']=='POST')
  3. {
  4. if(validate($_POST))
  5. {
  6. save($_POST, $_GET['id']));
  7. }
  8. else
  9. {
  10.  $formData = $_POST;
  11. }
  12. }
  13. else
  14. {
  15.  $formData = getItem($_GET['id']);
  16. }
  17. ?>



z palca (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
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: 22.08.2025 - 19:21