![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 29.12.2017 Ostrzeżenie: (0%) ![]() ![]() |
Witam, sprawa wygląda następująco..
Mam do wyboru trzy opcje - jedna musi być koniecznie zaznaczona ponieważ jest to potwierdzenie na przesyłanie ofert handlowych, a dwie pozostałe są opcjonalne i maksymalnie tylko jedna z nich może być zaznaczona. Mam zrobione zapisywanie w sesji zaznaczeń oraz adresu email wpisanego w formularzu, tak aby w razie niepowodzenia nie było potrzeby wpisywania drugi raz adresu czy zaznaczania ponownie wyboru (bo wszystko jest sprawdzane i jak coś co jest wymagane nie jest spełnione wyrzuca błąd, że trzeba poprawić, a jak jest wszystko ok to dodaje do bazy danych). Moim problemem jest to, że jak właśnie zaznaczę jedną z tych dwóch opcjonalnych opcji, a np. nie wypełnię pola z adresem email - czyli wyrzuci mi błąd to mimo, że zaznaczyłem opcję drugą, przeskakuje mi na pierwszą. Opcje korzystają z tej samej sesji, dzięki temu mogę wybrać maksymalnie jedną z nich bo wybierając drugą przełącza mi się z tej pierwszej. Podejrzewam, że to właśnie powoduje ten problem, ale nie wiem jak go rozwiązać... W chwili obecnej w bazie zapisuje się tylko adres email, a chciałbym jeszcze osiągnąć zapisywanie opcji zgodnie z tą która została wybrana. Kończąc dodam tylko, że moja znajomość php jest jeszcze (mam nadzieję ![]() ![]() Formularz:
Akceptacja zgody i wybór opcji, oraz zapamiętanie ich:
Dodawanie emaila do bazy:
Ten post edytował andrzej11 5.01.2018, 14:47:38 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
if (isset($_POST['zgoda'])) $_SESSION['zapamietaj_zgode'] = true;
if (isset($_POST['opcja'])) $_SESSION['zapamietaj_opcja'] = false; Naprawde nie widzisz ze tu jest jedno wielkie logiczne WTF? przenosze -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 29.12.2017 Ostrzeżenie: (0%) ![]() ![]() |
Wiem, że to nie powinno tak być, jednak też nie mam pojęcia jak to poprawnie zapisać...
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
opcja masz ustawic na false w dwoch przypadkach:
- nie byla wybrana - jest wybrana razem ze zgoda W kazdym innym wypadku (czyli w jednym) ma byc ustawione na true. Gdzie tu problem? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 29.12.2017 Ostrzeżenie: (0%) ![]() ![]() |
Okej, a w jaki sposób mogę zrobić zapisywanie opcji w bazie danych zgodnie z tą która została wybrana?
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Tak samo jak kazda inna, ktora juz zapisujesz do bazy a masz ja w zmiennej?
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 29.12.2017 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
A co bys chcial by bylo wpisywane? Zastosowales zestaw IFow, ktory ci napisalem? Nie? No samo sie nie zrobi.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 29.12.2017 Ostrzeżenie: (0%) ![]() ![]() |
Nie potrafię tego zrobić...
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
To czemu wczesniej napisales OKEJ?
Pytam wiec po raz kolejny, ktorej z tych rzeczy nie potrafisz zrobic: - nie byla wybrana - jest wybrana razem ze zgoda Nie umiesz stwierdzic czy opcja nie byla wybrana? Przeciez juz to robiles: !isset Nie umiesz stwierdzic czy byla wybrana razem ze zgoda? No to robisz isset(opcja) && issset(zgoda) To sa proste warunki logiczne. sprobuj. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 29.12.2017 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli tak to czy opcja nie była wybrana mam w tym kodzie:
czy muszę to powtórzyć? Jest wybrana razem ze zgodą: coś jest pewnie źle bo wywala stronę.. ![]() |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Składnia if: if (warunek) { kod }
U ciebie if (warunek) = false -------------------- |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 29.12.2017 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy na pewno się rozumiemy.. Przedstawię to na gifie
![]() Jak widać, zaznaczam opcję "Buduję dom" klikam "Wyślij" ale skrypt się nie wykona bo nie jest potwierdzona zgoda / nie jest wpisany adres email i zamiast zapamiętać zaznaczenie opcji "Buduję dom" przeskakuje ciągle na "Reprezentuję skład budowlany". Zaznaczając "Reprezentuję skład budowlany" zaznaczenie pozostaje na tej samej opcji, w sensie nie działa w drugą stronę... |
|
|
![]()
Post
#14
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Wszyscy cie doskonale rozumieja. To ty nie rozumiesz co sie do ciebie pisze...
Dobra, olac to, skoro masz problem z banalnym IF. Moze zacznij od zrobienia poprawnie html Skoro pierwsze moze byc zaznaczone a nie musi to ma to byc CHECKBOX. Pozycje 2 i 3 maja byc RADIO ale o tym samym NAME. Wowczas nie bedzie mozliwosci ze ktos zaznaczy oba. Tak to sie robi poprany html, wowczas ci odpadna nieszczesne IF ktorych nei rozumiesz -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 29.12.2017 Ostrzeżenie: (0%) ![]() ![]() |
1.) Nigdzie nie pisałem, że pierwsze może być zaznaczone, a nie musi tylko pisałem, że własnie MUSI być zaznaczone bo jak nie będzie zaznaczone to skrypt się nie wykona, zacytuję siebie z pierwszego postu:
Cytat Mam do wyboru trzy opcje - jedna musi być koniecznie zaznaczona ponieważ jest to potwierdzenie na przesyłanie ofert handlowych i w sumie nie widzę większej różnicy czy jest to checkbox czy radio, ale skoro żeby było poprawnie, okej - niech będzie to checkbox... 2). W pierwszym poście podałem elementy kodu i jak widać oba inputy są typu radio oraz mają ten sam name od samego początku więc nie rozumiem o czym piszesz... (?)
Ten post edytował andrzej11 10.01.2018, 10:16:48 |
|
|
![]()
Post
#16
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Dalbym se reke czyjas uciac ze byly rozne. Widocznie mi sie pomylilo.
Tak, ty wymagasz pierwszej opcji, ale user ma prawo jej nie zaznaczyc wiec powinien moc prawo ja odznaczyc a ze ty go nie przepuscisz wowczas dalej to skolei twoje prawo. Skoro dwa ostatnie maja te same nazwe, to musisz dodac dla nich VALUE - dla kazdego inne. Wowczas po przeslanym VALUE bedziesz wiedzial ktore bedzie wcisniete. I bedzie wcisniete tylko jedno. NIe bedzie opcji, ze beda wcisniete oba naraz A co wciesnieto to masz sprawdzac na podstawie VALUE a nie na podstawie czy bylo cos wcisniete czy nie -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 29.12.2017 Ostrzeżenie: (0%) ![]() ![]() |
Value już później dałem próbując zrobić zapisywanie treści zaznaczonych inputów do bazy. Wygląda to tak:
czy mogą być takie wartości? No i jak zrobić to sprawdzenie na podstawie wartości ![]() |
|
|
![]()
Post
#18
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
value ma byc 1,2 a nie jakies teksty i to jeszcze z polskimi literami.
Jak juz bardzo chcesz teksty to nadaj jakis wyraz No jak sprawdzic wartosci? .... if (isset($_POST['opcja']) && $_POST['opcja'] == '2') $opcja = 2; else $opcja = 1; przy zalozeniu ze opcja ostatnia ma wartosc 2 a przed nia wartosc 1 -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 29.12.2017 Ostrzeżenie: (0%) ![]() ![]() |
Jak tu dodać zapamiętanie zaznaczonej opcji?
|
|
|
![]()
Post
#20
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Moze tak samo jak zapamietywales wczesniej?
Poza tym jesli to w ramach jednego request to naprawde nie musisz do tego uzywac sesji. Mozesz zmienna $opcja wykorzystac rownie dobrze -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 15:38 |