2010-07-13 31 views
2

我想加载只是我的文档的一部分,我不得不使用LOAD函数因此,所以我试过这个函数。但我有一个问题,我想设置此函数的方法POST.i阅读jquery手动,该函数默认使用GET方法,但如果您的数据是一个对象,它将使用POST方法。我不知道如何做到这一点?我的意思是使用数据列表中的对象!如何在JQUERY的LOAD函数中使用POST方法?

这里是我的代码:

$("#form_next").live("click", function(event){ 

       var str = $("#form").serialize(); 

       $("#form").load("form.php?ajax=y&section=request&cid="+$("#country_id").val(), str, function(response, status, xhr) { 
        alert(response); 
       }); 
       return false;    
     }); 

我该怎么办呢?

回答

2

嗯,你其实已经回答了你的问题。

$("#form").load("form.php", { 
    ajax:  y, 
    section: request, 
    cid:  $("#country_id").val(), 
    magicstr: str 
    }, function(response, status, xhr) { 
       alert(response); 
    }); 
+1

没有朋友你让我错了! 我想通过POST方法发送STR,但它并未默认设置! – 2010-07-13 06:38:13

+0

@armin:只需将'str'添加到'data object'中即可。我更新了这篇文章。现在,您只需在数据对象服务器端访问'magicstr',并且此请求是'POSTED'。 – jAndy 2010-07-13 06:44:01

+0

对不起安迪,我们访问php代码中的数据的方式是这样的: 例如: <?php echo $ _POST ['section']; ?> 是不是? – 2010-07-13 06:46:47

4

你可以做一个简单的调整在这里,使用.serializeArray()代替.serialize(),像这样:

$("#form_next").live("click", function(event){ 
    var obj = $("#form").serializeArray(); 
    $("#form").load("form.php?ajax=y&section=request&cid="+$("#country_id").val(), obj, function(response, status, xhr) { 
    alert(response); 
    }); 
    return false;    
}); 

这触发了相同的逻辑传递数据作为一个对象(因为你是,具体的数组),并会导致一个POST而不是你想要的GET。