![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 0 Dołączył: 29.07.2006 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cześć,
Mam problem z zrobieniem prawdopodobnie prostej rzeczy. [STRUKTURA TABELI MySQL] Kod mysql> describe tb_wesele; +----------------+--------------+------+-----+---------+-----------------------------+ | Field | Type | Null | Key | Default | Extra | +----------------+--------------+------+-----+---------+-----------------------------+ | LP | tinyint(3) | NO | PRI | NULL | auto_increment | | Nazwa_prezentu | varchar(200) | YES | | NULL | | | Cena_prezentu | decimal(6,2) | YES | | NULL | | | Link_do_strony | varchar(250) | YES | | NULL | | | Czy_wybrany | tinytext | YES | | NULL | | | Kiedy_wybrany | timestamp | YES | | NULL | on update CURRENT_TIMESTAMP | +----------------+--------------+------+-----+---------+-----------------------------+ [IDEA] Możliwość wyboru wiersza (checkbox) jednokrotnie lub wielokrotnie (kilka wierszy) w formularzu HTML, generowanym za pomocą PHP, wyświetlającym zawartość tabeli MySQL oraz aktualizowanie tabeli MySQL po wyborze wiersza przez użytkownika. [Od strony użytkownika] Łopatologicznie: wchodzę na stronę, wybieram interesującą mnie pozycję (lub interesujące mnie pozycje) z tabeli, zahaczam "checkbox/y", klikam "Zapisz" i koniec. [Od strony serwera] Skrypt generuje listę pozycji do formularza za pomocą PHP/MySQL. Formularz zawiera tylko te pozycje, które w polu "Czy_wybrany" zawiera słowo "NIE".
Użytkownikowi pojawia się formularz z wyselekcjonowanymi wierszami oraz dodatkową kolumną, w której wstawiam <input type="checkbox">. Po wybraniu przez użytkownika pozycji, skrypt aktualizuje tabelę 'tb_wesele' zmieniając tylko pole "Czy_wybrany" z "NIE" na "TAK" oraz aktualizuje "TIMESTAMP" w polu "Kiedy_wybrany" dla pozycji zaznaczonych przez użytkownika. Ponieważ miałem dość długą pauzę w kodowaniu, wykładam się na podstawowych rzeczach: 1. Wszystko chcę obsłużyć "jednym plikiem" - tzn. operacje SELECT, UPDATE, wyświetlanie formularze miałyby odbywać się w jednym pliku index.php. 2. Chcę użyć metody POST dla formularza. Teraz moje wypociny: Używam osobnych pliczków do nagłówka i stopki (head.php oraz foot.php). Foot.php nie będę przytaczał, bo tam nic nie ma. head.php
index.php
Nie mam jeszcze napisanej części dot. UPDATE. [CO DZIAŁA?] 1. Połączenie do bazy i pobieranie wyselekcjonowanych danych do formularza [Z CZYM SOBIE NIE RADZĘ] 1. index.php - wiersze od 7 do 97. To są skrypty z jakichś starych moich prac, które starałem się przemianować. Niestety, zamiast iść w dobrym kierunku, to brnę we mgłę. 2. index.php - wiersz 140 - nie wiem jak to zrobić, aby formularz wiedział, którą pozycję (wcześniej wczytaną skryptem) wybrał użytkownik i aby ją przesłał (zaktualizował UPDATE) w bazie MySQL. Bardzo serdecznie proszę o pomoc. Moderatorów proszę o wyrozumiałość - po dłuższej przerwie, moja znajomość obraca się wokół Przedszkola, zatem w tej sekcji postanowiłem umieścić swoje "wypociny". Z pokorą przyjmę krytykę. Dziękuję, Jarek (zoomol) Ten post edytował zoomol 8.03.2014, 10:34:59 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 0 Dołączył: 29.07.2006 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
lukasz_os dziękuję za podpowiedź.
Rozumiem, że odnosisz się do pierwszego postu w temacie i Pytania nr 1. Zmieniłem już ten kod - szperałem ostatnie 2 dni, siedzę nad tym i wydłubałem coś takiego:
Działa to dobrze, aczkolwiek mam problem z wyświetlaniem - tak jak w ostatnim poście. NIE DZIAŁAJĄ mi natomiast następujące rzeczy: 1. Do tablicy POST przekazują się tylko dane z pierwszego wiersza ((IMG:style_emoticons/default/questionmark.gif) ?). Nie rozumiem tego. W sumie checkbox zadeklarowałem tak: <input type=\"checkbox\" name=\"id\" value=\"".$r['ID_prezentu']."\"/> - zrobiłem to specjalnie, bo jak zmienię name="id[]" to robią mi się tablice w tablicach - nie umiem tego ogarnąć :-( Gdy generuje się tabelka z pozycjami i checkbox'ami, zachowanie formularza jest następujące: a) gdy wybiorę pierwszą pozycję z tabeli (i tylko tą jedną pozycję) - formularz się przekazuje (IMG:style_emoticons/default/cool.gif) gdy wybiorę inną niż pierwszą pozycję z tabeli - formularz nie przekazuje danych o ID c) gdy wybiorę pierwszą pozycję i dowolną inną - formularz się przekazuje, a jako ID zwraca najniższą pozycję zaznaczoną w tabeli (tzn. patrząc na screen z IE - jeśli zaznaczę pozycję pierwszą i trzecią, to ID zwróci mi w POST [11], a jeśli zaznaczę pierwsze dwie - to zwróci mi ID [5]). Nie wiem o co tu chodzi - nie radzę sobie z danymi przekazanymi w checkbox'ach generowanych dynamicznie na podstawie zapytań MySQL... POMOCY 2. Mam skrypt sprawdzający czy minimum jeden checkbox został zaznaczony. Niestety nie działa mi to - a raczej działa w powiądzaniu z punktem powyżej, czyli: a) gdy wybiorę pierwszą pozycję z tabeli (i tylko tą jedną pozycję) - formularz się przekazuje, czyli skrypt działa (IMG:style_emoticons/default/cool.gif) gdy wybiorę inną niż pierwszą pozycję z tabeli - formularz się nie przekazuje - skrypt generuje błąd i wyświetla komunikat z alert'u c) gdy wybiorę parę pozycji, ale bez pierwszej - formularz się nie przekazuje - skrypt generuje błąd i wyświetla komunikat z alert'u c) gdy wybiorę pierwszą pozycję i dowolną inną - formularz się przekazuje. WTF? :-( Kod java script:
Heeelp (IMG:style_emoticons/default/ohmy.gif) (IMG:style_emoticons/default/ohmy.gif) Ten post edytował zoomol 11.03.2014, 09:59:08 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 00:36 |