使用jquery序列化表单并加载结果

时间:2012-02-18 00:13:13

标签: jquery serialization load

我还没有找到适用于我的确切功能的答案,所以在这里

我编写了一个快速函数,它应该将值发送到外部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 个答案:

答案 0 :(得分:1)

只需更改它即可使用序列化。但我认为更通用的功能可能更有用:

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准备好的每个表单上绑定事件。

答案 1 :(得分:0)

serialize()怎么样? http://api.jquery.com/serialize/

答案 2 :(得分:0)

如果您拥有load()个函数,并且在查询字符串中加载,只需将查询字符串部分替换为:

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

将表单序列化为查询字符串以进行提交。请注意,这不适用于文件。

此外,作为备注,load函数中的第二个参数不应包含()。您想传递函数,而不是评估值。