Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][AJAX]Jak wysłać form bez przeładowania
Forum PHP.pl > Forum > Przedszkole
denis95x
Witam wszystkich,

nie mogę sobie poradzić, żeby po wciśnieciu entera wysyłało mi poniższy formularz, ale bez przeładowania.

Gdzie błąd, co zmienić? HELP!

Formularz:
  1. <form method="POST" action="">
  2. <div class="input-group">
  3. <input class="form-control" id="tresc_komentarza" name="tresc_komentarza" placeholder="Wpisz notatkę lub komentarz...">
  4. <div class="input-group-btn">
  5. <input type="button" class="btn btn-success" id="wyslij" name="wyslij" value="zapisz" />
  6. </div>
  7. </div>
  8. </form>


Kod JS:

[JAVASCRIPT] pobierz, plaintext
  1. jQuery(document).ready(function() {
  2. $(document).on("submit", "#wyslij", function () {
  3.  
  4. var id_polaczenia = <? echo $id3; ?>;
  5. var id_user = <? echo $admin_online[id]; ?>;
  6. var tresc_koment = $('#tresc_komentarza').val();
  7.  
  8. $.ajax({
  9. url: "pages/send_msg.php",
  10. type: "POST",
  11. data: 'id_pol=' + id_polaczenia + '&id_us=' + id_user + '&tresc_msg=' + tresc_koment,
  12. success: function(msg) {
  13. $('#tresc_komentarza').val('');
  14. }
  15. });
  16.  
  17. });
  18.  
  19. });
[JAVASCRIPT] pobierz, plaintext


Domyślam się, że chodzi o tek fragment albo coś w formie

$(document).on("submit", "#wyslij", function () {
emstawicki
https://api.jquery.com/event.preventdefault/
denis95x
Ale jak to zastosować do przesłania forma enterem i kliknięciem w button, ale bez odświeżenia strony ?
emstawicki
utwórz event dla forma np.
  1. $( "form" ).submit(function( e) {});

Chyba że nadasz mu id:
  1. $( "#mojformularz" ).submit(function( e) {});

wtedy nie będzie zależności jak została wywołana wysyłka formularza
denis95x
Nooo okej, działa, ale dalej odświeża stronę sad.gif
Kishin
tak z ciekawości, czemu on submit, a nie on click?
denis95x
zmienione już na

[JAVASCRIPT] pobierz, plaintext
  1. jQuery(document).ready(function() {
  2.  
  3. $( "#newkomentarz" ).submit(function(e) {
  4.  
  5.  
  6. var id_polaczenia = <? echo $id3; ?>;
  7. var id_user = <? echo $admin_online[id]; ?>;
  8. var tresc_koment = $('#tresc_komentarza').val();
  9.  
  10. $.ajax({
  11. url: "pages/send_msg.php",
  12. type: "POST",
  13. data: 'id_pol=' + id_polaczenia + '&id_us=' + id_user + '&tresc_msg=' + tresc_koment,
  14. success: function(msg) {
  15. $('#tresc_komentarza').val('');
  16. }
  17. });
  18.  
  19. });
  20.  
  21. });
[JAVASCRIPT] pobierz, plaintext


Chciałbym, żeby wysyłało zarazem po wciśnieciu entera jak i kliknięciu "zapisz"
viking
Żeby mieć czytelne w data przekaż obiekt -> data: {id_pol: id_polaczenia, id_user: ...}.
Success jest przestarzałe w v3. Teraz się używa http://api.jquery.com/deferred.done/
I jeszcze input type=submit.
emstawicki
A to gdzie masz w swoim kodzie?
https://api.jquery.com/event.preventdefault/
denis95x
Przyznam sie szczerze, że nie bardzo wiem jak to zastosować :/
emstawicki
Dodaj po prostu do funkcji, która jest pod submit...
  1. jQuery(document).ready(function() {
  2.  
  3. $( "#newkomentarz" ).submit(function(e) {
  4. e.preventDefault();
  5.  
  6. var id_polaczenia = <? echo $id3; ?>;
  7. var id_user = <? echo $admin_online[id]; ?>;
  8. var tresc_koment = $('#tresc_komentarza').val();
  9.  
  10. $.ajax({
  11. url: "pages/send_msg.php",
  12. type: "POST",
  13. data: 'id_pol=' + id_polaczenia + '&id_us=' + id_user + '&tresc_msg=' + tresc_koment,
  14. success: function(msg) {
  15. $('#tresc_komentarza').val('');
  16. }
  17. });
  18.  
  19. });
  20.  
  21. });


ps.
mam nadzieję, że dla formularza w html nadałeś id newkomentarz?
denis95x
Tak, dzięki już inaczej to rozwiązałem smile.gif
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.