Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zmiana skryptu formularz<->ajax
Forum PHP.pl > Forum > XML, AJAX
ksenonlogin
Witam

Chodzi mi o wskazówki które pozwolą przerobić tak skrypt by był on bardziej uniwersalny.
W obecnej chwili wygląda to tak że do każdego formularza muszę tworzyć oddzielny skrypt, fajnie by było gdyby skrypt był oddzielnie w <head></head>, a takie parametry jak adres pliku .php czy wartości <input /> były przekazywane z poziomu formularza do skryptu który wysyła dane na podany adres w formularzu.

Proszę o jakieś wskazówki które pozwolą przerobić (bez wielkich zmian) obecny skrypt.



  1. <title>Kurs jQuery #3 example 7</title>
  2. <script type="text/javascript" src="jquery-1.7.1.min.js"></script>
  3. <script type="text/javascript">
  4. jQuery(document).ready(function() {
  5. $("#guzik").click(function() {
  6. var tekst = $('input[name=tekst]').val();
  7.  
  8. $.ajax({
  9. url: "php1.php",
  10. type: "POST",
  11. data: "indeks="+tekst,
  12. success: function(msg) {
  13. $("#kontener").text(msg);
  14. }
  15. });
  16. });
  17. });
  18. </script>
  19. </head>
  20.  
  21. <form action="">
  22. <input type="text" name="tekst" />
  23. <input type="button" id="guzik" value="KLIK" />
  24. </form>
  25. <div id="kontener"></div>
  26. </body>
  27. </html>
Tomplus
Pobierz wartość zmiennej ID gdzie input[type=button] i potem zamisat #guzika przypisz zmienną i powinno uruchamiać Ci wszystkie guziki.
kamil_oos
nadaj formularzowi jakaś klasę np. class="myForm" oraz w action zadeklaruj adres gdzie chcesz to wysłać.

w js:

  1.  
  2. $(document).ready(function() {
  3. $("form.myForm").submit(function(data) { //po kliknieciu nastepuje wyslanie forma - to przejmuje to zdarzenie
  4. var url = $(this).attr('action'); //pobieramy url z atrubutu "action" wysylanego formularza
  5.  
  6. $.ajax({
  7. url: url,
  8. type: "POST",
  9. data: $(this).serialize(), // oznacza to ze caly formularz - wszystkie inputy zostana dodane do requesta
  10. success: function(msg) {
  11. $("#kontener").text(msg);
  12. }
  13. });
  14. return false;
  15. });
  16. });


czyli, nie musisz deklarowac specjalnie url ani przycisku oraz wszystkie pola forma zostana wysłane. NIE TESTOWANE - napisane z palca.
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.