Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: AJAX dla początkującego
Forum PHP.pl > Forum > XML, AJAX
ahryciuk
Witam, czy mógłbym poprosić o pomoc doświadczonych kolegów w rozwiązaniu mojego problemu, mianowicie chodzi o przesłanie danych i zapisanie ich w bazie, problem polega na tym że dane się wysyłają jak wypełnię formularz, odświeżę stronę i dopiero wyślę to zapisze, za pierwszym razem nie zapisuje, nie wiem gdzie robię błąd (nie mam doświadczenia z ajaxem wink.gif)
funkcja ajaxowa wyglada tak:
  1. var form = $('#opinie-contact-form');
  2. var ratingo = $("input[name='rating']:checked").val();
  3.  
  4. var nameo = $("#name").val();
  5. var emailo = $("#email").val();
  6. var subjecto = $("#subject").val();
  7. var messageo = $("#message").val();
  8. var dataStringo = 'rating='+ ratingo + '&name='+ nameo + '&email='+ emailo + '&subject='+ subjecto + '&message='+ messageo;
  9. form.submit(function(event){
  10. event.preventDefault();
  11. var form_status = $('<div class="form_status1"></div>');
  12. $.ajax({
  13. type: "POST",
  14. data: dataStringo,
  15. url: $(this).attr('action'),
  16.  
  17. beforeSend: function(){
  18. form.prepend( form_status.html('<p><i class="fa fa-spinner fa-spin"></i> Dodawanie opini...</p>').fadeIn() );
  19. }
  20. }).done(function(data){
  21. form_status.html('<p class="text-success">Dziękujemy za dodanie opinii!</p>').delay(3000).fadeOut();
  22. });
  23. });


Skrypcik obsługujący:
  1. $rating = $_POST['rating'];
  2. $name = $_POST['name'];
  3. $email = $_POST['email'];
  4. $subject = $_POST['subject'];
  5. $message = $_POST['message'];
  6. $datka = date('Y-m-d');
  7. @mysql_query("INSERT INTO pinup_opinie (id, rating, name, email, subject, message, data) VALUES ('NULL', '$rating', '$name', '$email', '$subject', '$message', '$datka');");


a formularz z którego idzie:
  1. <form id="opinie-contact-form" name="opinie-form" method="post" action="opinie.php">
  2. <div class="form-group">
  3. <h4 class="column-title">Jak nas oceniasz?</h4>
  4. <div class="star-rating">
  5. <div class="star-rating__wrap">
  6. <input class="star-rating__input" id="star-rating-5" type="radio" name="rating" value="5" checked>
  7. <label class="star-rating__ico fa fa-star-o fa-lg" for="star-rating-5" title="5 z 5 gwiazdek"></label>
  8. <input class="star-rating__input" id="star-rating-4" type="radio" name="rating" value="4">
  9. <label class="star-rating__ico fa fa-star-o fa-lg" for="star-rating-4" title="4 z 5 gwiazdek"></label>
  10. <input class="star-rating__input" id="star-rating-3" type="radio" name="rating" value="3">
  11. <label class="star-rating__ico fa fa-star-o fa-lg" for="star-rating-3" title="3 z 5 gwiazdek"></label>
  12. <input class="star-rating__input" id="star-rating-2" type="radio" name="rating" value="2">
  13. <label class="star-rating__ico fa fa-star-o fa-lg" for="star-rating-2" title="2 z 5 gwiazdek"></label>
  14. <input class="star-rating__input" id="star-rating-1" type="radio" name="rating" value="1">
  15. <label class="star-rating__ico fa fa-star-o fa-lg" for="star-rating-1" title="1 z 5 gwiazdek"></label>
  16. </div>
  17. </div>
  18. </div>
  19. <div class="form-group">
  20. <input type="text" name="name" id="name" class="form-control" placeholder="Imię i Nazwisko" required>
  21. </div>
  22. <div class="form-group">
  23. <input type="email" name="email" id="email" class="form-control" placeholder="Email" required>
  24. </div>
  25. <div class="form-group">
  26. <input type="text" id="subject" name="subject" class="form-control" placeholder="Temat" required>
  27. </div>
  28. <div class="form-group">
  29. <textarea name="message" id="message" class="form-control" rows="8" placeholder="Twoja opinia" required></textarea>
  30. </div>
  31. <button type="submit" class="btn btn-primary">Dodaj opinię!</button>
  32. </form>

Prosiłbym o jakieś porady jak problem rozwiązać, bez ajaxu oczywiście chodzi jak trzeba.
Pyton_000
zamiast
data: dataStringo,

daj
data: $(this).serialize()
ahryciuk
dziękuje ślicznie działa jak trzeba, wesołych świąt, temat do zamknięcia
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-2024 Invision Power Services, Inc.