Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Poprawiaine wartości. Usuwa zamiast poprawiać.
Forum PHP.pl > Forum > Przedszkole
k2mil
Witam! To moja pierwsza styczność z tym formu. Szukam odpowiedzi na temat tego fragmentu skryptu. Powinien on poprawiać dane z księgi. Url wygląda tak index.php/?cmd=edit&co=ksiega&id=$id. Zamiast poprawiać to usuwa posty. Czemu tak jest. Zapytanie wydaje mi się być dobrze więc może coś z formularzem. Aha jest tam jeszcze funckja info która sobie sam zdeklarowałem i tak jak powiedziałem to tylko fragment kodu.
Bardzo proszę o pomoc gdzie jest błąd

  1. <?php case 'ksiega': 
  2.  $id=$_GET['id'];
  3.  $zrodlo='SELECT * FROM ksiega WHERE id='.$id.'';
  4.  $rezultat=mysql_query($zrodlo);
  5.  $wiersz=mysql_fetch_array($rezultat);
  6.  
  7. ?>
  8. <form method="POST" action="index.php?cmd=edit&co=ksiega&id=<?php echo $wiersz['id'] ?>">
  9. <input type="hidden" name="cmd" value="edit" />
  10. <input type="hidden" name="co" value="ksiega" />
  11. <input type="hidden" name="id" value="<?php echo $wiersz['id'] ?>" />
  12. <table border="0" width="424">
  13. <tr><td>Nick</td><td><input type="text" maxlength="10" name="ud_nick" size="20" value="<?php echo($wiersz['nick']) ?>"/></td></tr>
  14. <tr><td>Opinia</td><td><textarea rows="4" name="ud_opinia" cols="40"><?php echo($wiersz['opinia']) ?></textarea></td></tr>
  15. <tr><td colspan="2"><input type="submit" name="wyslij" value="Wyslij" /></td></tr></table></form>
  16.  
  17. <?php
  18. if ($_POST['wyslij']){ //jesli guzik został włączony, to:
  19. $id=$_GET['id'];
  20. $ud_nick=$_POST['ud_nick'];
  21. $ud_opinia=$_POST['ud_opinia'];
  22. $zrodlo="UPDATE ksiega SET nick='$ud_nick', opinia='$ud_opinia' WHERE id='$id'";
  23.  $rezultat=mysql_query($zrodlo) or mysql_error();
  24. info('Wpis został poprawiony',ok);
  25. return;
  26. }
Cienki1980
wartość $id pobierasz z $_GET a $nick i $opinia z $_POST .. może tutaj coś nie tak questionmark.gif
gebp
Moim zdaniem masz bląd tu:
  1. <?php
  2. $id=$_GET['id'];
  3. ?>


powino być:
  1. <?php
  2. $id=$_POST['id'];
  3. ?>

ponieważ formularz przesyłasz za pomocą post, więc wszystkie dane z formularza musisz odbierać za pomoacą tablicy $_POST[]
k2mil
chodzi tu o to że jak wyrzuce wpis

  1. <?php
  2. if ($_POST['wyslij']){
  3. ?>


to wszystko działa tak jak powinno. Jednak wyświetla mi napis
'Wpis został poprawiony' nawet jeśli nie było żadnej akcji.

Może zapytam inaczej. Jak sprawdzić czy urzytkownik kliknął na 'submit' innym sposobem niż ja zaprezentowałem.
Cienki1980
a jaką wartość musi mieć $_POST['wyslij'] żeby wykonała się akcja questionmark.gif Jaką wartość otrzymuje z formularza ?
k2mil
<input type="submit" name="wyslij" value="Wyslij" />

no i jak będzie kliknięta tzn że będie miała true. No i napisałem że name to 'wyslij' no i zrobiłem instrukcje if ($_POST['wyslij'])
Cienki1980
Teraz to ja nie wiem jaki jest błąd .. czy usuwa czy wogóle nie działa. Piszesz, że jak wywalisz warunek to cały czas pojawia się napis "wpis poprawiono". A co się dzieje jak jest teraz ? Usuwa wpis? AKtualizuje go ? Nic nie robie ?

I takie dziwne pytanie ... po co masz w
  1. <form action="index.php?co=edit& ......

skoro też wysyłasz te same dane za pomocą hiddenów questionmark.gif Zdecyduj się na coś.
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.