Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX][HTML] Form w form'ie - problem z działaniem skryptu AJAX
Forum PHP.pl > Forum > Przedszkole
Michael2318
Mam pewien formularz i muszę w środku tego formularza, dorzucić jeszcze jeden formularz... I problem jest tego typu, że to nie bardzo chce działać.
Próbuję z tego poradnika: http://www.webskrypty.pl/2010/dodawanie-re...-pomoca-jquery/
dorzucić sobie automatyczną zmianę danych w bazie, za pomocą formularza. Wygląda to mniej więcej tak:

  1. <form action="{S_CONFIG_ACTION}" method="post" id="pick_form" name="pick_form">
  2. tutaj masa paści
  3. <form action="" method="post" id="submit" name="submit">
  4. tutaj pola input z tekstem, ktory ma zostac dodany do bazy za pomoca ajax
  5. </form>
  6. </form>


Problem jest taki, że ten drugi form zachowuje się tak jakby go nie było. Po kliknięciu w submit, zamiast ajax przesyłać wartości do pliku to jest on odbierany jakby przez ten pierwszy form i się tylko strona odświeża.
Czytałem gdzieś, że nie można użyć forma w formie, ale w takim razie jak ja mam to inaczej zrobić, skoro pierwszy form ma podaną ścieżkę działania (action="costam") a drugi jej nie może mieć bo ma zostac obsłużony przez AJAX. ?
krzychu0808
Przez Jquery możesz pobierać bezpośrednio dane z Input i nie musisz dawać form dla tego formularza w środku. Możesz zrobić potrzebne inputy i jakiś button który nie wysyła forma ale Jquery go wykryje że został naciśnięty i pobierze z wybranych input-ów dane , sprawdzi je i wyśle do pliku php. Takie rozwiązanie da ci możliwość wysyłania środkowego formularza nie ograniczoną ilość razy bez przeładowania oczywiście możesz zrobić że po wysłaniu formularz środkowy znika jeżeli chcesz aby był użyty tylko raz.
Czyli np.

  1. $(function(){
  2. $("#wyslij_srodek").click(function() {
  3. var nazwa = $('#nazwa_input').val(); // pobieranie input do zmiennej
  4. $(".komunikat").html('Wpisałeś wartość: '+nazwa);
  5. // tutaj musisz sobie napisać sprawdzanie danych formularza i wysyłanie do pliku php.
  6. return false;
  7. });
  8. });
  9.  
  10. <body>
  11. <FORM action="plik.php" method="post">
  12. <INPUT type="text" id="test"><BR>
  13. tutaj masa paści <br/><br/>
  14.  
  15. //// Środkowy formularz /// <br/>
  16. <div class="komunikat"></div>
  17. <input type="text" id="nazwa_input"> <br/>
  18. <button id="wyslij_srodek">Wyślij</button> // button wysyłający środkowy formularz do JS bez przeładowania strony <br/>
  19. ///// Koniec środkowego formularza //// <br/>
  20.  
  21.  
  22. <INPUT type="submit" value="Send">
  23. </FORM>


Oczywiście musisz dołączyć Jquery do tego kodu.
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.