2009-08-02 14 views
36

Mam prosty jeden formularz wprowadzania tekstu, który po przesłaniu, musi pobrać plik php (przekazywanie danych wejściowych do pliku), a następnie podjąć wynik (tylko wiersz tekst) i umieść go w widoku div i zaniknij ten widok do widoku div.jquery przesłać formularz, a następnie pokazać wyniki w istniejącym div

Oto co mam teraz:

<form id=create method=POST action=create.php> 
<input type=text name=url> 
<input type="submit" value="Create" /> 

<div id=created></div> 

Co potrzebne jest rezultaty create.php?url=INPUT, aby być dynamicznie ładowane do div zwanego created.

Mam skrypt formularza jquery, ale nie udało mi się go uruchomić poprawnie. Ale mam załadowaną bibliotekę (plik).

Odpowiedz

68

Ten kod powinien to zrobić. Nie potrzebujesz wtyczki formularz dla czegoś tak prostego jak to:

$('#create').submit(function() { // catch the form's submit event 
    $.ajax({ // create an AJAX call... 
     data: $(this).serialize(), // get the form data 
     type: $(this).attr('method'), // GET or POST 
     url: $(this).attr('action'), // the file to call 
     success: function(response) { // on success.. 
      $('#created').html(response); // update the DIV 
     } 
    }); 
    return false; // cancel original event to prevent form submitting 
}); 
+2

A ponieważ chce: create.php? Url = INPUT - powinien ustawić metodę formularza na "GET" – sirrocco

+0

Myślę, że to tylko on opisał dane, które powinny zostać wysłane. Metoda formularza mówi POST, więc zakładam, że tego chce. –

+1

** God like !!! ** Dokładnie to, czego szukałem. Dla tak prostego pytania, które użytkownicy widzą na dowolnej liczbie stron każdego dnia, w Internecie jest bardzo mało dokumentacji/przykładów. – Sevenearths

2

Musisz użyć AJAX, aby opublikować formularz, jeśli nie chcesz, aby strona była odświeżana.

$('#create').submit(function() { 
    $.post('create.php', $('#create').serialize(), function (data, textStatus) { 
     $('#created').append(data); 
    }); 
    return false; 
}); 
+0

Catching zdarzenia kliknięcia przycisk Prześlij nie jest właściwe zdarzenie do połowu na formularzu uległość. chcesz złapać wydarzenie formularza. –

+0

Masz oczywiście rację. Zaktualizowałem mój kod. – RaYell

+0

Próbowałem tego, ale po kliknięciu przycisku przesyłam mnie na stronę create.php. – mrpatg

4

ta działa również na przesyłanie plików

$(document).on("submit", "form", function(event) 
{ 
    event.preventDefault(); 

    var url=$(this).attr("action"); 
    $.ajax({ 
     url: url, 
     type: 'POST', 
     dataType: "JSON", 
     data: new FormData(this), 
     processData: false, 
     contentType: false, 
     success: function (data, status) 
     { 
      $('#created').html(data); //content loads here 

     }, 
     error: function (xhr, desc, err) 
     { 
      console.log("error"); 

     } 
    });   

}); 
Powiązane problemy