如何使用AJAX / JSON提交表单?

目前我的AJAX工作方式如下:

的index.php

One 
workspace

https://stackoverflow.com/questions/3438123/how-to-submit-a-form-with-ajax-json/one.php

 $arr = array ( "workspace" => "One" ); echo json_encode( $arr ); 

ajax.js

 jQuery(document).ready(function(){ jQuery('.ajax').live('click', function(event) { event.preventDefault(); jQuery.getJSON(this.href, function(snippets) { for(var id in snippets) { jQuery('#' + id).html(snippets[id]); } }); }); }); 

上面的代码工作得很好。 当我单击链接‘One’时,执行https://stackoverflow.com/questions/3438123/how-to-submit-a-form-with-ajax-json/one.php并将字符串“One”加载到工作空间DIV中

题:

现在我想用AJAX提交一个表单。 例如,我在index.php中有一个像这样的表单。

 

当我提交表单时, https://stackoverflow.com/questions/3438123/how-to-submit-a-form-with-ajax-json/one.php应该在工作区DIV中打印文本框值。

 $arr = array ( "workspace" => $_POST['myText'] ); echo json_encode( $arr ); 

如何编写js以使用AJAX / JSON提交表单。

谢谢

提交表单很简单:

 $j('#myForm').submit(); 

但是,这将回发整个页面。

通过Ajax调用的post也很容易:

 $j.ajax({ type: 'POST', url: 'one.php', data: { myText: $j('#myText').val(), myButton: $j('#myButton').val() }, success: function(response, textStatus, XMLHttpRequest) { $j('div.ajax').html(response); } }); 

如果你想对结果做一些事情你有两个选择 – 你可以显式设置success函数(我在上面做过)或者你可以使用load助手方法:

 $j('div.ajax').load('one.php', data); 

不幸的是,你会遇到一个混乱的问题:使用表单变量填充该data对象以进行发布。

但它应该是一个相当简单的循环。

这是我的完整解决方案:

 jQuery('#myForm').live('submit',function(event) { $.ajax({ url: 'one.php', type: 'POST', dataType: 'json', data: $('#myForm').serialize(), success: function( data ) { for(var id in data) { jQuery('#' + id).html(data[id]); } } }); return false; }); 

看看jQuery Form Plugin中的$.ajaxSubmit函数。 应该如此简单

  $('#myForm').ajaxSubmit(); 

您可能还希望绑定到表单提交事件,以便所有提交都通过AJAX进行,如链接页面上的示例所示。

您可以使用jQuery的$.ajax方法提交表单,如下所示:

 $.ajax({ url: 'one.php', type: 'POST', data: $('#myForm').serialize(), success:function(data){ alert(data); } });