![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 5.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
plik pdanefirma.php (przeglądaj dane firmy)
I teraz chcę aby po kliknięciu na przyckisk "usuń zaznaczone" do pliku usunfirme.php zostały przekazane ID wszystkich zaznaczonych checkboxów a następnie skasowane z bazy wszystkie wpisy do których przypożądkowany był dany checkbox. Jak to zrobić?? Ten post edytował bielos 5.06.2008, 19:13:32
Powód edycji: Poprawiam BB COde /~strife/
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 463 Pomógł: 49 Dołączył: 27.12.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Proszę o poprawę BBCODE.
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 732 Pomógł: 80 Dołączył: 25.05.2005 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
1. Musisz mieć checkboxy wrzucone w formularz, wybierając mehod na POST najlepiej,
2. Nazwa checkboxa musi być zakończona [] czyli np name="cos[]", oraz zawierać wartość czyli np value="2" (tu wstawisz swoje ID) 3. Dane odczytujesz w pętli ze zmiennej $_POST, czyli np $_POST['cos'] - będzie tablicą zawierające dane z checboxów. 4. Dodać obsługę usuwania w MySQL 5. Gotowe ![]() To najłatwiejsze kroki, z konstrukcją skryptu powinieneś sobie poradzić, bo zagadnienia do niego są dobrze opisane na necie. -------------------- DevBlog - http://www.bartekrogus.pl
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 5.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ale moim ID z bazy jest $row[0].
Więc mam za pomocą $_POST zaciągnąć $row[0] ![]() |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Te dane $row[0] zbierasz do jakiejś tablicy podczas przeczesywania rekordów, powiedzmy do tablicy $ID[]. Potem wrzucasz je do dajesz do checkboxa w następujący sposób:
Najlepiej w pętli tyle razy ile potrzeba Metodą post przekazujesz z formularza zmienną $_POST['ID'], która jest tablicą i do jej elementów dobierasz się w następujący sposób: $_POST['ID'][0], $_POST['ID'][1] itd... Oczywiście metodą post powinny być przekazane tylko te klucze, które zaznaczysz w checkboxach. czyli jeśli odhaczysz tylko tam gdzie jest $ID[2], to będziesz maiał tylko $_POST['ID'][2] a $_POST['ID'][0], $_POST['ID'][1] i pozostałe nie będą istniały. Nie wiem, czy się jasno wyrażam. Dlatego, żeby sprawdzić jakie ID były zaznaczone w formularzu, trzeba przelecieć po kluczach tablicy $_POST['ID'][] i zobaczyć które klucze istnieją lub które nie są NULLami. -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 5.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Wykonywana jest pętla while:
[php] Petla będzie wykonywana X razy (zaleźy ile mam już wpisów w bazie.) Robi mi to tabelkę (tabelkę HTML-ową, taką jak w EXELU) mającą X kolumn i 4 wiersze. (odpowiednio $row[1]-[4] odpowiadają za inne wpisy w bazie np. row[1] to Imię) i wyświtla ją (tą exelową tabelkę) na ekran. Zostało mi $row[0] które odpowiada za ID wpisu w bazie. Robię tabęlę (tabela PHP) tylko dla ID z bazy (nie wiem czy dobrze zdefiniowaną) Teraz chcę zrobić pętlę która tak samo jak ta pętla while dodaje do utworzonej tabeli (tej exelowej) dodatkowy wiersz "zaznacz" i X checkboxów zaleźnie ile mam wpisów w bazie. I teraz nie wiem jak ma wyglądać pętla robiąca mi X checkboxów a każdy checkbox ma mieć inne "value" (pobrane z tablicy $idfirma) Oczywiście wszystko jest wzięte w <table> i <form action="usunfirme.php" method="post"> Później muszę w pliku usunfirme.php zrobić pętle która odczyta mi value checkboxów (czyli ID wpisów z bazy które chcę usunąć) I usunie z bazy te wpisy. Ten post edytował bielos 6.06.2008, 14:01:35 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Hmmm.... Nie wiem, czy dobrze zrozumiałam. Jak już w while utworzysz tabelkę z numerami ID niech ona się nazywa $idfirma
i pętla jest banalna:
Efektem jest wiersz z tyloma komórkami ile firm się wczytało a w każdej komórce checkbox. O to chodziło? Wiersz możesz dołożyć do poprzednich i wyświetlić wewnątrz tagów <table></table> -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 5.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dlaczego jak chcę teraz pętlą wyświetlić moją tablicę "firmaid" wyświetla mi tylko napis "Array"??
(tak poprostu chciałem sobie wyświetlić zawatość tablicy)
A jak zamieniłem na
To wyświetliło mi tylko jedno ID chociaż mam więcej wpisów w bazie. Ten post edytował bielos 9.06.2008, 14:01:28 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Widocznie źle skonstruowałeś tę tablisę i jest to tablica wielowymiarowa, czyli jej i-ty element jest tablicą. Wyświetl to sobie za pomoca funkcji var_dump. Zobaczysz strukturę zmiennej.
-------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 5.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
wyświetla mi tylko:
Cytat string(2) "11" (11 to ID jednego z wpisów do bazy)ewentualnie: Cytat string(5) "Array" jak używam:
Wynikiem też jest 11 Nie wiem dlaczego zawsze wyśiwtla mi 11 chociaż wcześniejszy wpis do bazy ma ID 9 Ten post edytował bielos 9.06.2008, 14:02:02 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ja też nie wiem i nie dowiem się póki nie pokażesz kawałka kodu, w którym konstruujesz tę tabelę.
![]() -------------------- |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 5.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ten post edytował bielos 9.06.2008, 13:51:25 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
No to za każdym przebiegiem pętli konstruujesz tabelę odnowa zamazując poprzednią wartość. Dlatego masz tylko jedną
Zamiast tego:
Zrób tak:
W ten sposób za każdym przebiegiem petli dodasz do tabeli kolejne pole i po skończonej pętli będziesz miał w niej to co trzeba. -------------------- |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 5.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Może to głupie,ale nie wyświetla mi się checkbox (wiadomo,nie ma printf ani echo).
jak do: dodam printf lub echo to mi wyskakuje błąd.
O dodaniu do:
nie ma mowy,bo to bez sensu... Jak to rozwiązać?? Ten post edytował bielos 9.06.2008, 16:20:10 |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
To naprawdę nie takie trudne. Wystarczy zrozumieć jak to działa. -------------------- |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 5.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Thx za pomoc.
Jedynym problemem jaki teraz mam: ![]() jest to,że chcę mieć chceckboxy w "zaznacz". Nie wiem dlaczego się tak rozsypały. Jeszcze raz kod wrzucę:
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
A mówiłeś, że w ostatnim wierszu... Kurcze Ty naprawdę tego nie kumasz?
I cała reszta kodu, który skopiowałeś leci do kosza. -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 06:52 |