Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MSSQL] Submit i przekazywanie zmiennej
Forum PHP.pl > Forum > Przedszkole
DerekDX
Witam,
jako ze dopiero zaczynam swoja zabawe z php i mysql przejzalem wiekszosc stron z kursami, a ze nic tak nie cementuje wiedzy teoretycznej jak praktyczne jej wykrzystanie to zabralem sie za pisanie strony i nie dlugo po tym pojawil sie problem.


Otoz mam tabele zamierajaca pole Id i kilka pol co teraz nie jest istotne, napisalem skrypt wyswietlajacy wszystkie rekordy tabeli a obok kazdego rekordu jest przycisk ktory usuwac bedzie dany rekord. Moze jestem malo doswiadoczony w te klocki ale chce to zrobic w ten sposob ze po przycisnieciu butona usun zmienna ktora jest ID rekordu powedruja za pomoca $_POST do drugiego pliku gdzie kwerenda mysql usunie rekord o podanym id. Problem polega na tym ze zmienna ID ktora oznacza liczbe pozadkowa rekordu nie chce sie przeslac do pliku usuwajacego.

Mam nadzieje ze zrozumielisci o co mi chodzi, na dole zamieszczam kod odpowiedzialny za przesylanie tej zmiennej do pliku suswajacego





  1. while ($tab=mysql_fetch_array($wynik))
  2. {
  3. $id=$tab['id'];
  4. $tytul=$tab['tytul'];
  5. $autor=$tab['autor'];
  6. $utworzono=$tab['data'];
  7. echo '<tr><td>';
  8. echo $id;
  9. echo '</td><td>';
  10. echo $tytul;
  11. echo '</td><td>';
  12. echo $autor;
  13. echo '</td><td>';
  14. echo $utworzono;
  15. echo '</td><td>';
  16. echo '<form action="usun_artykul.php" method="post">
  17. <input type="submit" name="$id" value="usun"></form>';
  18. echo '</td></tr>';
  19. }
  20. echo '</table>';
lukasz_matysek
Cytat(DerekDX @ 23.04.2010, 18:49:07 ) *
  1. echo '<form action="usun_artykul.php" method="post">
  2. <input type="submit" name="$id" value="usun"></form>';


Problem leży w miejscu, które pogrubiłem. "name" oznacza nazwę tego inputa, którą wykorzystujesz do innych celów, chociażby do sprawdzania później za pomocą isset czy dany przycisk rzeczywiście został wciśnięty, czy też może ktoś wcisnął F5(reload).

Ale do rzeczy. Moim zdaniem, można to zrobić tak:

  1. echo '<form action="usun_artykul.php" method="post">
  2. <input type="submit" name="submit" value="usun">
  3. <input type="hidden" name="id_do_usuniecia" value="$id" />
  4. </form>';


a po stronie php zebrać ID za pomocą $_POST['id_do_usuniecia']

Tak ja to widzę, jednak czuję się jeszcze mało kompetentny aby doradzać komukolwiek smile.gif
minolone
zamień to
  1. <input type="submit" name="$id" value="usun"></form>';

na to
  1. <input type="submit" name="'.$id.'" value="usun"></form>';

lukasz_matysek
hmm teraz to ja nie rozumiem, ale ponieważ to "przedszkole" to mogę zadać pytanie:

jak Kolego z Twojej metody wyciągnąć potem w php numer ID do usunięcia?

korey
mógł bys podać zawartość pliku usun_artykul.php..?
DerekDX
Cytat(korey @ 23.04.2010, 19:23:39 ) *
mógł bys podać zawartość pliku usun_artykul.php..?


zawartosc pliku usun_artykul.php nie jest imponujaca, nie rozwijalem go powniewaz nie moglem uporac sie z przeslaniem tej zmiennej. Plik ten sprawdza tylko czy zmienna zostala przeslana

  1. <?php
  2. $id=$_POST[$id];
  3. echo $id;
  4. ?>

korey
ja pozbyłbym sie <form> i użył IF() i $_GET[];

napisałem coś takiego ale nie wiem czy będzie u ciebie na pewno działać.

  1. <table>
  2. <?php
  3. while ($tab=mysql_fetch_array($wynik))
  4. {
  5. $id=$tab['id'];
  6. $tytul=$tab['tytul'];
  7. $autor=$tab['autor'];
  8. $utworzono=$tab['data'];
  9. ?>
  10. <tr>
  11. <td><?php echo $id; ?></td>
  12. <td><?php echo $tytul; ?></td>
  13. <td><?php echo $autor; ?></td>
  14. <td><?php echo $utworzono; ?></td>
  15. <td><a href="jakis_plik.php?usun_id=<?php echo $id; ?>">Usuń</a></td>
  16. </tr>
  17. <?php
  18. }
  19. if($_GET['usun_id']){
  20. $usuwam = $_GET['usun'];
  21. $zapytanie = "DELETE FROM `tabela` WHERE `id`= $usuwam ";
  22. echo 'Artykuł został usunięty biggrin.gif';
  23. }else{}
  24. ?>
  25. </table>
  26.  
lukasz_matysek
kolego Korey, oczywiście że można tak zrobić, jednak on chciał wykorzystać buttony a nie linki.
korey
może zrobić <img> zamiast buttona biggrin.gif
To byla tylko moja propozycja rozwiązania tego problemu prostszym sposobem.
lukasz_matysek
a no rzeczywiście, img też fajnie w sumie, tylko trzeba kombinować z css i js żeby uzyskać graficzny efekt wciśnięcia.
korey
ech.. js nie koniecznie biggrin.gif

np w css tajesz

img.usun:hover{ //np
background-image:url(usun_bg.gif);
//albo
border: bla bla ;
}

tak czy owak teraz style CSS to standard na stronkach www
lukasz_matysek
a to ciekawe z hover dla czegoś innego niż <a>, w sumie nigdy mi to do głowy nie przyszło:) muszę koniecznie popróbować smile.gif dzięki za pokierowanie smile.gif
korey
No cieszę sie ze byłem w stanie jakoś pomóc.
DerekDX
Dzieki chlopaki za pomoc wszystko dziala jak nalezy
korey
Hmm.. tylko powiedz mi jeszcze z którego kodu skorzystałeś. smile.gif To tak z Ciekawości
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.