JQuery отправить форму, а затем показать результаты в существующем DIV - PullRequest
41 голосов
/ 02 августа 2009

У меня есть простая текстовая форма ввода, которая при отправке должна извлечь файл php (передать входные данные в файл), а затем взять результат (просто строку текста) и поместить его в div и исчезнуть, что div в поле зрения.

Вот что у меня сейчас:

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

<div id=created></div>

Мне нужны результаты create.php?url=INPUT, которые будут динамически загружены в div с именем created.

У меня есть скрипт формы jquery, но я не смог заставить его работать правильно. Но у меня есть библиотека загружена (файл).

Ответы [ 3 ]

74 голосов
/ 02 августа 2009

Этот код должен сделать это. Вам не нужен плагин Form для чего-то такого простого:

$('#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
});
6 голосов
/ 04 февраля 2015

Это работает также для загрузки файла

$(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");

        }
    });        

});
2 голосов
/ 02 августа 2009

Вы должны использовать AJAX для публикации формы, если вы не хотите, чтобы страница обновлялась.

$('#create').submit(function () {
    $.post('create.php', $('#create').serialize(), function (data, textStatus) {
         $('#created').append(data);
    });
    return false;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...