PHP:在AJAX / JSON中提交表单有问题吗?

目前我有以下代码:

home.php

_home.php

 $arr = array( 'textone' => $_POST['mytext1'], 'texttwo' => $_POST['mytext2'] ); echo json_encode( $arr ); 

ajax.js

 jQuery('#myformid').live('submit',function(event) { $.ajax({ url: '_home.php', type: 'POST', data: $('#myformid').serialize(), success: function( data ) { // TODO: write code here to get json data and load DIVs instead of alert alert(data); } }); return false; }); 

提交时输出:

 {"textone":"abc","texttwo":"123"} 

我想使用_home.php中的json数据加载textone DIV中的mytext1值和texttwo DIV中的mytext2

提示:我正在使用此答案在链接点击事件上执行相同的任务。 但是如何在表单提交上执行此操作?

谢谢

你只想解析那个JSON并将div设置为它包含的值吗?

 var divs = JSON.parse(data); for (var div in divs) { document.getElementById(div).innerHTML = divs[div]; } 

(以前的海报的语法可能更像你所追求的,也许更多的是跨浏览器兼容,但不包括JSON解析。)

由于JSON只是JavaScript的一个子集,因此您只需eval()即可。 JSON.parse()基本上是这样做的,但是你可以保证,如果’data’包含一些讨厌的代码而不是一个简单的对象,它将不会被评估。

在成功function

 for (prop in data){ $('#' + prop).html(data[prop]); } 

这是我完整的JS解决方案:

 jQuery('#myformid').live('submit',function(event) { $.ajax({ url: '_home.php', type: 'POST', dataType: 'json', data: $('#myformid').serialize(), success: function( data ) { for(var id in data) { //jQuery('#' + id).html(data[id]); // This will also work document.getElementById(id).innerHTML = data[id]; } } }); return false; });