Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]document.formname.submit() nie działa - brak też błędów w logach
Forum PHP.pl > Forum > Przedszkole
Grandalf00
Kod przerabiam i szukam rozwiązania od dłuższego czasu.

Mam takie coś:
  1. <form name="sendin" action="index.php" method="post">
  2. <input type="hidden" name="username" />
  3. <input type="hidden" name="password" />
  4. </form>
  5.  
  6. <script type="text/javascript">
  7.  
  8. function doLogin() {
  9. document.sendin.username.value = document.log.user1.value;
  10. document.sendin.password.value = hexMD5(document.log.pass1.value);
  11. document.sendin.submit();
  12. return false;
  13. }
  14. </script>
  15.  
  16.  
  17. <div id="login">
  18. <form name="log" action="index.php" method="post" onSubmit="return doLogin()">
  19. Login: <input type="text" name="user1" class="input"/></br>
  20. Hasło: <input type="password" name="pass1" class="input"/></br>
  21. <input type="submit" value="Zaloguj" />
  22. </form>
  23. </div>
  24.  


Lecz niestety nie mam pojęcia dlaczego nie ma rezultatu funkcji:

  1. document.sendin.submit();


Dalej w kodzie mam php, który sprawdza czy
  1. $_POST['submit']

jest ustawiona, ale nie przechodzi mi do tego warunku.

Dwie wcześniejsze linijki działają poprawnie, bo widzę zmiany wartości pól gdy są one widoczne. W necie znalazłem kilka wskazówek, jedna z nich to ewentualna nazwa innego elementu jako name="submit", ale w moim przypadku tak nie ma.
Jakieś sugestie drodzy forumowicze?
trueblue
Skoro w formularzu sendin nie ma pola o nazwie submit, to nie będzie go w tablicy $_POST.

Jeśli już kombinujesz, to nie jest potrzebny drugi formularz, bo pola hidden możesz umieścić w formularzu logowania, a właściwie tylko jedno - "zaszyfrowane" hasło.

I jeszcze jedno. To cały kod? Jeśli tak, to brak funkcji hexMD5.
Grandalf00
Cytat(trueblue @ 19.06.2016, 18:05:17 ) *
Skoro w formularzu sendin nie ma pola o nazwie submit, to nie będzie go w tablicy $_POST.


Ok, tylko w dokumentacji jest napisane:
The submit() method submits the form (same as clicking the Submit button)

Więc rozumiem to tak, że wywołując tą funkcję, nie potrzebuję jej fizycznie w formularzu. Poza tym, próbowałem z dodaniem pola submit, lecz nic to nie dało.


Cytat(trueblue @ 19.06.2016, 18:05:17 ) *
Jeśli już kombinujesz, to nie jest potrzebny drugi formularz, bo pola hidden możesz umieścić w formularzu logowania, a właściwie tylko jedno - "zaszyfrowane" hasło.


Tak jeszcze spróbuje.

Cytat(trueblue @ 19.06.2016, 18:05:17 ) *
I jeszcze jedno. To cały kod? Jeśli tak, to brak funkcji hexMD5.


Nie, nie cały, funkcja jest dołączona wcześniej.
trueblue
Cytat(Grandalf00 @ 19.06.2016, 20:20:12 ) *
Ok, tylko w dokumentacji jest napisane:
The submit() method submits the form (same as clicking the Submit button)

Więc rozumiem to tak, że wywołując tą funkcję, nie potrzebuję jej fizycznie w formularzu. Poza tym, próbowałem z dodaniem pola submit, lecz nic to nie dało.

Wciąż mam na myśli tablicę $_POST, w której nie będzie elementu odpowiadającego inputowi o tej nazwie w formularzu.

Nie wiem jakie logi przeglądałeś, ale sprawdź co się dzieje w konsoli przeglądarki: https://www.google.pl/search?q=konsola+przeglądarki
Grandalf00
Dokładnie o konsole mi chodziło. Zarówno w Chrome jak FF brak błędów. Przerobiłem na jeden formularz i chyba będzie oki.
trueblue
W przypadku jednego formularza, aby zachować funkcjonalność jak przy dwóch, powinieneś czyścić pole "nieszyfrowanego" hasła.

A kiedy już wszystko będzie działać poprawnie, to sprawdź zachowanie po wyłączeniu JS w przeglądarce (podpowiem, że efekt będzie taki sam przy zastosowaniu jednego jak i dwóch formularzy).
Grandalf00
Pamiętałem i tak też zrobiłem smile.gif Strona głównie opiera się na JS. Dzieki za pomoc.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.