[JavaScript][PHP] Dwie wartości w input radio |
[JavaScript][PHP] Dwie wartości w input radio |
5.03.2018, 16:59:40
Post
#1
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 5.03.2018 Ostrzeżenie: (0%) |
Jak umieścić dwie wartości w jednym Input radio i użyć ich do formularza kontaktowego ?
Znalazłem takie rozwiązanie : https://laravel.io/forum/03-09-2014-2-value...or-radio-button Ale jak skonstruować to w pliku PHP i jak zrobić walidacje takiego radio w javascript. mam coś takiego: Chwiałbym aby pojawiło się w value poczta, przelew poczta, pobranie I aby php pobrał dwie wartości jako $dostawa $platnosc Bardzo proszę o pomoc.
Jak dokonać waidacji inputu radio , ma być zaznaczony przynajmniej jeden
|
|
|
5.03.2018, 19:10:37
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
A $dostawa może mieć inną wartość niż "poczta"? Jeśli nie, to nie ma sensu, aby przesyłać tam dwie wartości, bo i tak wiesz, że pierwsza to właśnie "poczta".
Jeśli natomiast może, to konstrukcja powinna być inna. Nadrzędną grupę powinny stanowić przyciski radio z typami dostawy, a w ramach każdego przycisku dostawy typy płatności: - poczta -- przelew -- pobranie - kurier -- przelew -- pobranie - odbiór osobisty -------------------- |
|
|
5.03.2018, 19:31:58
Post
#3
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 5.03.2018 Ostrzeżenie: (0%) |
Dokładnie chce zrobić 6 przycisków jednokrotnego wyboru w ramach jednej grupy:
- przelew poczta - przelew paczkomat - przelew kurier - pobranie poczta - pobranie paczkomat - pobranie kurier - $platnosc / $dostawca Klient wybiera jedne z tych sześciu ale ja chce pobierać osobne dane jako $platnosc i $dostawca |
|
|
5.03.2018, 19:56:18
Post
#4
|
|
Grupa: Zarejestrowani Postów: 286 Pomógł: 46 Dołączył: 10.01.2016 Ostrzeżenie: (0%) |
Chodzi Ci pewnie o: <input type="hidden" ... /> Czyż nie? |
|
|
5.03.2018, 20:25:54
Post
#5
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 5.03.2018 Ostrzeżenie: (0%) |
Wysłałem PW O hidden nie pomyślałem bo nigdy się z tym nie spotkałem wcześniej, zobaczę czy zaskoczy :-) ------ W tej chwili mam tak ( oczywiście ich jest w sumie 6 ) : <input id="radio1" name="radio" type="radio" value="przelew poczta" /> <input id="radio2" name="radio" type="radio" value="pobranie paczkomat" /> To oznacza że będzie mi pobierać wartość value jako $delivery - razem: przelew poczta lub pobranie paczkomat Natomiast chciałbym aby pobierało dwie wartości osobno z value $payment i $carrier Nie chce robić grupy radio dla przelew/pobranie a następnie dla przewoźnika: poczta/paczkomat/kurier , bo nie bardzo jest możliwość pokazania wtedy kosztów dostawy. A ponadto nie potrafię robić nadrzędnych inputów dlatego chciałbym umieścić to w jednej grupie. |
|
|
5.03.2018, 20:41:11
Post
#6
|
|
Grupa: Zarejestrowani Postów: 286 Pomógł: 46 Dołączył: 10.01.2016 Ostrzeżenie: (0%) |
Cytat Dziękuje za zainteresowanie moim pytaniem. Zajmujesz może PHP komercyjne ? Próbuje przerobić formularz kontaktowy na formularz zamówienia jak zapewne zauważyłeś ale wiele problemów mi wyskakuje . Chętnie zleciłbym wykonanie go komuś doświadczonemu aby mieć pewność jego poprawnego działania. Teoretycznie idzie ku końcowi, więc już coś jest zrobione, pytanie na ile jest to zdatne do użycie bo nie znam się na PHP :-P Problemem jest właśnie dwie opcje w grupie wyboru formy dostawy oraz to że w zależności od wyboru dostawy powinny zmieniać się pola do wpisywania adresu. (...) Zamiast (...), był podany twój numer GG, ale jeśli nie chcesz go udostępniać publicznie, to go "wykropkowałem". Pisz tutaj w temacie, a nie na PRIVate. Co do Twojego problemu, to piszesz dla mnie trochę niezrozumiale, więc nie wiem jak podpowiedzieć za bardzo. Czy testowałeś mój kod, co Ci podesłałem POST wyżej, czy nie? Wydaję mi się, że nie, ponieważ Twój problem dotyczy najprawdopodobniej tego, że powinieneś użyć ukrytego pola formularza (<input type="hidden" ... />). Jeśli możesz, to wytłumacz swoją udrękę konkretnie i łopatologicznie. |
|
|
5.03.2018, 21:03:08
Post
#7
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 5.03.2018 Ostrzeżenie: (0%) |
Nie działa niestety, ale być może źle zaimplementowałem kod.
Mój formularz jest zbudowany na metodzie POST , Ty podałeś GET i się gubie/ Czy nie powinno być np: <input type="radio" value="przelew" name="pay[]" /> <input type="hidden" value="poczta" name="pay[1]" /> Do czego jest [] ? |
|
|
5.03.2018, 21:12:11
Post
#8
|
|
Grupa: Zarejestrowani Postów: 286 Pomógł: 46 Dołączył: 10.01.2016 Ostrzeżenie: (0%) |
"[]" w formularzu w atrybucie name tworzy tablicę, którą można odebrać np. w PHP.
Odkomentuj linię z print_r(...) i zobaczysz, co zostało utworzone. Co do method, to raczej w tym przypadku na razie bez większego znaczenia. Cytat name="pay[1]" - Tym sposobem możesz zmieniać index'y w tablicy.Poeksperymentuj, a zobaczysz jak to mniej więcej działa.
Oczywiście naciśnij na te kółko, a następnie na "submit". Po wysłaniu zobaczysz to: Array ( [3] => payment [9] => provider ) Ten post edytował Neutral 5.03.2018, 21:17:46 |
|
|
6.03.2018, 01:00:07
Post
#9
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 5.03.2018 Ostrzeżenie: (0%) |
Jak powinny zatem być skonstruowane inputy
Przy: przelew - poczta przelew - paczkomat przelew - kurier pobranie - poczta pobranie - paczkomat pobranie - kurier Czy tak ?
Czemu sposób taki nie działa:
Ten post edytował plaxton 6.03.2018, 01:18:18 |
|
|
6.03.2018, 10:02:24
Post
#10
|
|
Grupa: Zarejestrowani Postów: 286 Pomógł: 46 Dołączył: 10.01.2016 Ostrzeżenie: (0%) |
plaxton:
Cytat Nie znam się kompletnie PHP i nie wiem tak naprawdę co dalej z tym mam zrobić , nawet ta jeśli metoda działa. PRZYKŁAD: Mam pliki zamowienie.html .zamowienie.php i zamowienie.js Z formularza z html z input radio ma pobrać dwie osobne wartości : <input id="radio1" name="radio" type="radio" value="przelew poczta" /> <input id="radio2" name="radio" type="radio" value="przelew paczkomat" /> <input id="radio3" name="radio" type="radio" value="przelew kurier" /> <input id="radio4" name="radio" type="radio" value="pobranie poczta" /> <input id="radio5" name="radio" type="radio" value="pobranie paczkomat" /> <input id="radio6" name="radio" type="radio" value="pobranie kurier" /> Abym miał osobne wartości $payment i $carrier (osobno "przelew", osobno "poczta") Napisz proszę co mam wpisać w plik zamowienie.html, co w zamowienie.php a co w .js Neutral: Cytat To może Ty mi wyjaśnisz, co chcesz napisać, ale tak konkretnie. Po kliknięciu w co, co ma się stać i następnie PHP, co ma zrobić? Opisz tę swoją bolączkę/łamigłówkę dokładniej, ponieważ nie wiem, co zamierzasz stworzyć. Jak nie podasz takich informacji, to skąd mam wiedzieć, co mam poprawić w Twoim, czy nie Twoim kodzie? Pisz tutaj na ogólnym forum, a nie do mnie na PRIVate. Cytat Czy tak ? (...) Nie wiem, co chcesz osiągnać, ale to pewnie jakaś błahostka. Zamiast tego: Cytat itd.. Możesz napisać tak dla każdej grupy inną nazwę, żeby tablica była następna z kolei, a nie wszystko w jednym: Napisz var_dump lub print_r i zobacz jak została utworzona tablica. Dane odbierasz tak: lub Dla kolejnych input'ów analogicznie. Cytat Czemu sposób taki nie działa: (...) Jak nie działa? Jeśli Ty nie chcesz powiedzieć, co chcesz napisać, a mógłbym Ci to stworzyć od początku nawet z JS, to przepraszam, ale w tym momencie nie chcę zgadywać. Ten post edytował Neutral 6.03.2018, 10:06:45 |
|
|
6.03.2018, 13:06:21
Post
#11
|
|
Grupa: Zarejestrowani Postów: 445 Pomógł: 3 Dołączył: 4.06.2010 Ostrzeżenie: (0%) |
Nie prościej stworzyć osobna tabele w bazie danych gdzie będzie płatność i dostawa ?
|
|
|
6.03.2018, 13:48:14
Post
#12
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 5.03.2018 Ostrzeżenie: (0%) |
Nie chce używać bazy danych. Jestem totalnym amatorem jeśli chodzi o PHP
Użyłem takich inputów w .html Tylko że w takim wypadku przy pay1 , pay2 , pay3 radio przestaje być jednokrotnego wyboru. I dodatkowo miesza mi dane z poszczególnych radio.
Co mam dokładnie wpisać .PHP aby z otrzymać dane tylko z jednego wybranego radio (np pierwszego: przelew/poczta) i przyporządkować do zmiennych $payment $provider Czyli otrzymać przy kliknięciu pierwszego radio: $payment - przelew $provider - poczta Przy kliknięciu drugiego $payment - pobranie $provider - paczkomat
|
|
|
6.03.2018, 13:58:29
Post
#13
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Zrób sobie
<input type="radio" value="przelew|poczta" name="shipping" /> a w php: list($payment, $shipping) = explode('|', $_POST['shipping']); |
|
|
6.03.2018, 14:38:17
Post
#14
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 5.03.2018 Ostrzeżenie: (0%) |
Działa :-) :-)
Właśnie o to mi chodziło . Taki prosty kod. Bardzo dziękuje za pomoc :-) |
|
|
Wersja Lo-Fi | Aktualny czas: 19.04.2024 - 14:07 |