Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][MySQL][PHP]Wysyłanie zmiennej POST z pętli za pomocą formularza
jatczyn
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 16.12.2009

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




jak zaczynasz formularz
<form>
to musisz go tez zakonczyc
</form>
U ciebie tego brakuje
Go to the top of the page
+Quote Post
jatczyn
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 16.12.2009

Ostrzeżenie: (0%)
-----


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... (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




pokaz kod po poprawkach
Go to the top of the page
+Quote Post
Czahoo
post
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 2
Dołączył: 16.12.2009

Ostrzeżenie: (0%)
-----


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ć
Go to the top of the page
+Quote Post
jatczyn
post
Post #6





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 16.12.2009

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/smile.gif)

(IMG:style_emoticons/default/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. };
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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 (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #8





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




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
)
Go to the top of the page
+Quote Post
jatczyn
post
Post #9





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 16.12.2009

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/smile.gif)


Jasnowidz qrna (IMG:style_emoticons/default/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ć? (IMG:style_emoticons/default/smile.gif)

Strach się przyznać - LITERÓWKA! (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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 (IMG:style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 06:25