Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Problem z formularzem
Forum PHP.pl > Forum > Przedszkole
herWALDI
Witajcie kochani,
mam problem z formularzem mianowicie gdy puszczam mu submit to strona zostanie przeładowana lecz dane na formularzu się nie zaktualizują, jakiś pomysł, żeby zrobić refresh i dodać komunikat? Próbowałem z header(Location:) lecz gdy wraca mi na docelową podstronę nie ma komunikatu, np. w echo.

  1. <p>
  2. <form action="" method="POST">
  3. <div class="col-md-6" style="padding-left:0px;">
  4. <label>
  5. <strong>Imię:</strong><br />
  6. <input type="text" class="form-control" name="firstname" value="<?php echo $session_option_row['firstname']; ?>" />
  7. <br />
  8. </label>
  9. <label>
  10. <strong>Nazwisko:</strong><br />
  11. <input type="text" class="form-control" name="lastname" value="<?php echo $session_option_row['lastname']; ?>" />
  12. <br />
  13. </label>
  14. <label>
  15. <strong>Adres e-mail:</strong><br />
  16. <input type="text" class="form-control" name="email" value="<?php echo $session_option_row['email']; ?>" />
  17. <br />
  18. </label>
  19. <label>
  20. <strong>Hasło:</strong><br />
  21. <input type="password" class="form-control" name="password" value="" />
  22. <br />
  23. </label>
  24. </div>
  25.  
  26. <div class="col-md-6" style="padding-right:0px;">
  27. <label>
  28. <strong>Miasto:</strong><br />
  29. <input type="text" class="form-control" name="town" value="<?php echo $session_option_row['town']; ?>" />
  30. <br />
  31. </label>
  32. <label>
  33. <strong>Ulica:</strong><br />
  34. <input type="text" class="form-control" name="street" value="<?php echo $session_option_row['street']; ?>" />
  35. <br />
  36. </label>
  37. <label>
  38. <strong>Kod pocztowy:</strong><br />
  39. <input type="text" class="form-control" name="postal_code" value="<?php echo $session_option_row['postal_code']; ?>" />
  40. <br />
  41. </label>
  42. <label>
  43. <strong>Poczta:</strong><br />
  44. <input type="text" class="form-control" name="post_office" value="<?php echo $session_option_row['post_office']; ?>" />
  45. <br />
  46. </label>
  47. </div>
  48.  
  49. <label>
  50. <input type="submit" class="btn btn-md btn-success" name="submit" value="Aktualizuj dane">
  51. </label>
  52. </form>
  53. <?php
  54. if (isset($_POST['submit'])) {
  55. $firstname = $_POST['firstname'];
  56. $lastname = $_POST['lastname'];
  57. $email = $_POST['email'];
  58. $password = $_POST['password'];
  59. $town = $_POST['town'];
  60. $street = $_POST['street'];
  61. $postal_code = $_POST['postal_code'];
  62. $post_office = $_POST['post_office'];
  63.  
  64. $query = mysql_query("UPDATE users SET email='$email', password='$password', firstname='$firstname', lastname='$lastname', town='$town', street='$street', postal_code='$postal_code', post_office='$post_office' WHERE id='$id'");
  65. }
  66. ?>
  67. </p>
nospor
Nie bardzo zrozumialem: gdzie ci sie dane nie aktualizuja? W bazie czy w formularzu?
herWALDI
W formularzu, strona się przeładowuje lecz w inputach zostają stare dane, dopiero po odświeżeniu działa.
nospor
Bo te dane:
$session_option_row['firstname']
pewnie wgrywasz z bazy wczesniej a dopiero potem robisz update. Te dane powinienies wgrywac z bazy dopiero po update
herWALDI
To jest edycja, więc w value zczytuje z bazy rekordy, przy wejsciu na stronę są wyświetlane. I później issetem robię update.
nospor
Ja to wiem i ci mowie ze robisz to zle. Najpierw ma byc update, a potem dopiero pobranei z bazy nowych danych. Teraz robisz odwrotnie i sie dziwisz ze dane w formie sie nie zmieniaja od razu...
herWALDI
tzn jak to mam zrobić skoro ma być odwrotnie? TO w jaki sposób mam wyświetlić dane w inputach?
nospor
W inputach nic nie zmieniasz....


Teraz masz tak:

select danych z bazy
form
update

A masz zrobic tak:

update
select danych z bazy
form

Tu nie ma zadnej filozofii.
herWALDI
Dzięki działa oraz mam jeszcze jeden problem,
dodałem tak jak mówiłeś najpierw update itp.
posiadam oto taki kod:
  1. if($_POST['username'] == '' && $_POST['password'] == '') {
  2. echo "<center><span style='color:#cd1919;font-weight:bold;'>Wypełnij wszystkie pola!</span></center>";
  3. } elseif ($row['username'] == $username && $row['password'] == $password) {
  4. $_SESSION['user-login'] = $row['username'];
  5. header("Location: <a href="http://localhost/catalog&quot%3b%29;" target="_blank">http://localhost/catalog");</a>

i podczas logowania nie dziala przekierowanie do głównej, wywala błędol:
Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\catalog\header.php:79) in C:\wamp\www\catalog\logowanie.php on line 20
w header.php na 79 mam koniec pliku, bez zadnych spacji itp. w 20(logowanie.php) header("Location: http://localhost/catalog");
nospor
Cytat
headers already sent by
Problem poruszany petryliard razy. uzyj wyszukiwarki forum lub google
herWALDI
Mam kolejny problem:
mam takie oto kod: http://wklej.org/id/2149167/
Przy wrzucaniu zdjęcia i wypełnieniu inputów wszystko jest okej, zapisuje, updatuje w bazie danych lecz gdy później coś edytuje (same inputy) bez dodawania obrazka usuwa mi obrazek z bazy.
nospor
Bo za kazdym razem updatujesz pole ze z obrazkiem niezaleznie czy je ktos podal czy nie. Wiec jak nie podal, to wstawiasz tam poprostu pusta wartosc. Musisz dac warunek na zdjecie i robic update albo ze zdjeciem albo bez
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.