Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]Wysyłanie zmiennej POST z pętli za pomocą formularza
Forum PHP.pl > Forum > Przedszkole
jatczyn
Witam wszystkich serdecznie po raz pierwszy!!

Jestem nowy i zielony...

Szukam pomocy. Mam problem z wysłaniem zmiennej POST z formularza generowanego przez pętle. Mogłbym zrobić to na linkach ze zmienną GET ale zastanawiam się jednak co zrobić by tego uniknąć?
Moim ogólnym zamierzeniem jest wyświetlenie listy nazw kategorii pobranych z bazy.Przy każdej z nich znajdują się klawisze "edytuj" i "usuń".

Oto fragment kodu którym wysyłam zmnienną $kat_id (edytuj i usuń)
  1. $ile=mysql_num_rows($query);
  2. if(($ile) > 0){
  3. echo '<table>';
  4. for($i=0; $i<$ile; $i++){
  5. $wynik=mysql_fetch_assoc($query);
  6. echo '<tr><td><a href="index.php?akcja=show_cykle&kat_id='.$wynik['kat_id'].'"><h3> &nbsp &nbsp '.$wynik['kat_name'].'</h3></a></td><td>
  7. <form action="index.php" method="post"><input type="hidden" name="kat_id" value="'.$wynik['kat_id'].'"><input type="submit" name="edit_kat" value="edytuj"></td>
  8. <td><form action="index.php" method="post"><input type="hidden" name="kat_id" value="'.$wynik['kat_id'].'"><input type="submit" name="del_kat" value="usuń'.'"></td></tr>';
  9.  
  10. };
  11. echo '</table>';


Odbieram ją za pomocą:
  1. if(isset($_POST['del_kat'])){


Mam nadzieję, że sposób w jaki opisałem problem będzie dla Was zrozumiały.
nospor
jak zaczynasz formularz
<form>
to musisz go tez zakonczyc
</form>
U ciebie tego brakuje
jatczyn
Cytat(nospor @ 16.12.2009, 10:16:34 ) *
jak zaczynasz formularz
<form>
to musisz go tez zakonczyc
</form>
U ciebie tego brakuje


Racja! Dzięki.

Niestety usunięcie tych braków nie zmienia faktu, że zmienna kat_id zbierana jest ze wszystkich formularzy... sad.gif
nospor
pokaz kod po poprawkach
Czahoo
Ja bym to trochę przerobił, bo ten kod wygląda topornie.

  1. echo '<table>';
  2. while($wynik=mysql_fetch_assoc($query))
  3. {
  4. echo '<tr><td><a href="index.php?akcja=show_cykle&kat_id='.$wynik['kat_id'].'"><h3> &nbsp &nbsp '.$wynik['kat_name'].'</h3></a></td><td>
  5. <form action="index.php" method="post"><input type="hidden" name="kat_id" value="'.$wynik['kat_id'].'"><input type="submit" name="edit_kat" value="edytuj"></form></td>
  6. <td><form action="index.php" method="post"><input type="hidden" name="kat_id" value="'.$wynik['kat_id'].'"><input type="submit" name="del_kat" value="usuń"></form></td></tr>';
  7. }
  8. echo '</table>';


To powinno działać
jatczyn
Cytat(Czahoo @ 16.12.2009, 12:49:32 ) *
Ja bym to trochę przerobił, bo ten kod wygląda topornie.

  1. echo '<table>';
  2. while($wynik=mysql_fetch_assoc($query))
  3. {
  4. echo '<tr><td><a href="index.php?akcja=show_cykle&kat_id='.$wynik['kat_id'].'"><h3> &nbsp &nbsp '.$wynik['kat_name'].'</h3></a></td><td>
  5. <form action="index.php" method="post"><input type="hidden" name="kat_id" value="'.$wynik['kat_id'].'"><input type="submit" name="edit_kat" value="edytuj"></form></td>
  6. <td><form action="index.php" method="post"><input type="hidden" name="kat_id" value="'.$wynik['kat_id'].'"><input type="submit" name="del_kat" value="usuń"></form></td></tr>';
  7. }
  8. echo '</table>';


To powinno działać



Działa tak samo jak moje... Czyli nie działa smile.gif

sad.gif

Cytat(nospor @ 16.12.2009, 12:36:04 ) *
pokaz kod po poprawkach


Oto on - jest w nim trochę "stylowego syfu" ale już nie chciało mi się poprawiać. Wyczyszcze jak zadziała.

  1. polacz();
  2. mysql_query("SET NAMES 'utf8'");
  3. $sql="select * from rk_kat";
  4. $query=mysql_query($sql);
  5.  
  6. $ile=mysql_num_rows($query);
  7.  
  8. if(($ile) > 0){
  9. echo '<table>';
  10. for($i=0; $i<$ile; $i++){
  11. $wynik=mysql_fetch_assoc($query);
  12.  
  13. echo '<tr><td><a href="index.php?akcja=show_cykle&kat_id='.$wynik['kat_id'].'"><h3> &nbsp &nbsp '.$wynik['kat_name'].'</h3></a></td><td cols="50px">
  14. <form action="index.php" method="post"><input type="hidden" name="kat_id" value="'.$wynik['kat_id'].'"> &nbsp <input type="submit" name="edit_kat" value="edytuj"></form></td>
  15. <td><form action="index.php" method="post"><input type="hidden" name="kat_id" value="'.$wynik['kat_id'].'"> &nbsp <input type="submit" name="del_kat" value="usuń'.$wynik['kat_id'].'"></form></td></tr>';
  16.  
  17. };
nospor
ten kod po przysisnieciu "usun" powinien zwracac tylko id z formularza w ktorym byl przycisniety przycisk. Jesli dziala ci to inaczej to pewnie gdziesz jeszcze masz jakies formularze, ktore są nad tymi wszystkimi i wszystko w koncu ci szlag trafia smile.gif
Kshyhoo
Z tego co ja widzę, kod działa... przynajmniej u mnie. Sprawdź, co masz po przeładowaniu, choćby tak:
  1. print('<pre>POST: ');
  2. print_r($_POST);
  3. print('</pre>')

U mnie było:
Cytat
POST: Array
(
[kat_id] => 15
[edit_kat] => edytuj
)
jatczyn
Cytat(nospor @ 16.12.2009, 13:45:14 ) *
ten kod po przysisnieciu "usun" powinien zwracac tylko id z formularza w ktorym byl przycisniety przycisk. Jesli dziala ci to inaczej to pewnie gdziesz jeszcze masz jakies formularze, ktore są nad tymi wszystkimi i wszystko w koncu ci szlag trafia smile.gif


Jasnowidz qrna smile.gif

  1. '<form action="index.php" method="post">Dodaj kategorie: &nbsp <input type="text" name="kat_name"> &nbsp <input type="submit" name="add_kat" value="dodaj"></form>';


Tylko to mam wyżej i więcej nic nie ukrywam formularzowego. Kto mi teraz powie jak to pogodzić? smile.gif

Strach się przyznać - LITERÓWKA! brzydal.gif

Gdyby nie wasze podpowiedzi nie szukałbym i stwierdził, że tak się nie da...

Wielkie dzięki. Następnym razem wyśpię się i sprawdzę kod zanim zapytam.

Winowajca: $kat_id = $POST['$kat_id'];

Działa nawet z "górnym" formularzem.

POZDRAWIAM , DZIĘKI smile.gif
nospor
Cytat
Działa nawet z "górnym" formularzem.
Ja nie mowilem ze nie moze byc formularza "nad". Ja mowilem ze nie moze byc formularza "nad" ktory nie jest zakonczony przez co twoje te formularze znajdowalaby się w nim a nie pod nim. Czytamy ze zrozumieniem 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.