Сериализация формы и загрузка результатов с помощью jquery - PullRequest
0 голосов
/ 18 февраля 2012

Я не совсем нашел ответ, который подходит для моей точной функции, поэтому здесь все сказано

Я написал быструю функцию, которая должна отправлять значения во внешний php-файл и загружать результат в div ..хорошо для ввода формы 1 - каков наилучший способ получить все формы ввода из формы и передать их через файл php и загрузить результаты?сериализации?как бы это реализовать ???:)

$(function() {  
    function showLoader(){
        $('#results .loader').stop(true,true).fadeIn(200);
    }
    //hide loading bar
    function hideLoader(){
        $('#results').fadeIn(1500);
        $('#results .loader').fadeOut(200);
    };
    $('#submit').keydown(function(e) {
      if(e.keyCode == 13) {
        showLoader();
        $('#results').fadeIn(1500);
        $('#results').load('/patientform.php?val=' + $('#patientSearchForm input').val(), hideLoader());
        e.preventDefault();
      }
      });     
    $('#submit').click(function(){  
        //show the loading bar
        showLoader();
        $('#results .loader').fadeIn(1500);      
        $('#results').load('/patientform.php?val=' + $('#patientSearchForm input').val(), hideLoader());

    });
});

Ответы [ 3 ]

1 голос
/ 18 февраля 2012

Просто измените его, чтобы использовать сериализацию. Но я думаю, что более общая функция может быть более полезной:

function postForm(formId, callback) {
    $(formId).on("submit", function(){
        $.ajax({
            url: "url/GoesHere",
            data: $(this).serialize(),
            success: function(data) {
                // request succeeded
                if (callback) callback.apply(data);
            },
            error: function(xhr) {
               // request error
               alert(xhr.responseText);
            }
        });

        return false;
    })
};

Вы можете использовать его для привязки события к любой форме, которую вы хотите в DOM ready.

0 голосов
/ 18 февраля 2012

Если у вас есть load() функции, и вы загружаете в строку запроса, просто замените часть строки запроса следующим:

$('#results').load('/patientform.php?'+$('#patientSearchForm').serialize(), hideLoader);

Это сериализует форму в строку запроса для отправки. Обратите внимание, что это не будет работать с файлами.

Также, как примечание, второй аргумент в вашей функции load не должен содержать (). Вы хотите передать функцию, а не оцененное значение.

0 голосов
/ 18 февраля 2012

А как насчет serialize()? http://api.jquery.com/serialize/

...