Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX][HTML] Form w form'ie - problem z działaniem skryptu AJAX
Michael2318
post
Post #1





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

Ostrzeżenie: (0%)
-----


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. ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
krzychu0808
post
Post #2





Grupa: Zarejestrowani
Postów: 428
Pomógł: 2
Dołączył: 1.04.2007
Skąd: Pogorzelica

Ostrzeżenie: (10%)
X----


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.

Ten post edytował krzychu0808 5.01.2013, 13:14:53
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 03:49