Dla każdego, kto dostaje przyniósł tutaj przez Google:
Do mojej najlepszej wiedzy, JavaScript jest jedynym sposobem, aby uczynić z nich ciąg z separatorów, ponieważ komplikuje jeśli chcesz ogólne rozwiązanie, które może zajmować ze wszystkimi możliwymi żądanymi separatorami i obsługuje wychodzenie z separatora, jeśli pojawia się w jednym z łańcuchów wartości.
Jeśli to możliwe, zdecydowanie zalecamy zaakceptowanie formatu my_match=190&my_match=200
i przekonwertowanie ich na serwerze.
W PHP jest to automatyczne, jeśli wstawisz []
na końcu nazwy. W innych językach, takich jak Python, zwykle będzie specjalny getter, który zwraca listę zamiast pojedynczej wartości. (Na przykład: request.POST.getlist('my_match')
w Django)
Opieranie się na JavaScript sprawia, że twoja strona jest bardziej delikatna, ponieważ niestabilne połączenie, usterka sieci lub zepsuta zapora ogniowa warstwy aplikacji może uniemożliwić załadowanie kodu JavaScript lub opóźnić go na tyle długo, aby użytkownik mógł aby spróbować kliknąć Prześlij bez niego.
(Jeśli wyłączysz przycisk przesyłania, dopóki JavaScript nie zostanie załadowany, po prostu denerwujesz i/lub udaremniasz odwiedzających i sprawisz wrażenie, że twoja witryna jest tandetnie zbudowana, ponieważ wszyscy inni dobrze sobie radzą bez tego ograniczenia Zawsze pamiętaj, że Twoje działania wpływają na pierwsze wrażenie, jakie robisz.)
... nie wspominając, w zależności od JavaScriptu, kiedy nie jest to konieczne (np. Menu rozwijane bez formularza rezerwowego :hover
, formularze brawurowo wymagają JavaScript do przesłania itp.) denerwuje ludzi takich jak ja, którzy używają białych list narzędzi JavaScript, takich jak NoScript do:
- Twórz reklamy internetowe i "weź ankietę!" pełnoekranowe mniej irytujące
- Zmniejszyć spowolnienie posiadania ton zakładek i rozszerzeń otwarte
- ograniczyć szanse, że 0-day exploit uda
Jeśli koniecznie koniecznością użycie JavaScript w takiej sytuacji , pamiętaj, aby użyć znacznika <noscript>
, aby ostrzec ludzi przed ładowaniem z włączoną obsługą JavaScript przed wypełnieniem formularza przez.
Połączenie tego i ukrytego pola załatwiło sprawę. Dzięki! – Paul