Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz
Forum PHP.pl > Forum > Przedszkole
Weqs
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'] 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.
Kuziu
  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ś
TomASS
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.
jaco
na przykladzie posta isset zawsze true 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 winksmiley.jpg
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.