2010-09-12 104 views
0

那么基本上,我试图做的是创建一个方法,可以采取任何数据类型,并基本上将其转换为php识别的数据或JSON的事情。所以说,我想传递一个数组,一个二维数组,或者只是一些基本的字符串。我会在参数中调用该函数传递并将其发送给php。现在我会反向设计这个函数,以便能够翻译发送的内容并将其作为一个php数组或者只是一个字符串。我擅长php数组,但是iam在javascript中不好,这里是我的困境。如果任何人都可以给我一些关于javascript方面的见解,我可以从中看到。然而,最重要的是如何发送一个数组与JavaScript的动态,也就是说,它的维度可以改变和它的长度。比如说这个函数处理不同形式的不同数量的输入字段,它需要将这个表单的输入字段放到一个数组中,转换成JSON并发送。AJAX和PHP数据传输

感谢任何帮助,我可以得到一个正确的方向或指导,谢谢。

回答

2

以下是使用jQuery,AJAX,JSONPHP JSON encode的示例。我希望它能帮助你理解流程。

test.php的:

<script type="text/javascript" src="jquery-1.4.2.js"></script> 
<script type="text/javascript" src="jsFile.js"></script> 

<form action='_test.php' method='post' class='ajaxform'> 
<input type='text' name='txt1' value='Test Text 1'> 
<input type='text' name='txt2' value='Test Text 2'> 
<input type='submit' value='submit'> 
</form> 

<br /><br /> 

<div id='testDiv1'>txt1's text comes here....</div> 
<div id='testDiv2'>txt2's text comes here....</div> 

_test.php:

<?php 
     $arr = array('testDiv1' => $_POST['txt1'], 'testDiv2' => $_POST['txt2']); 
     echo json_encode($arr); 
?> 

jsFile.js

jQuery(document).ready(function(){ 

jQuery('.ajaxform').submit(function() { 

    $.ajax({ 
     url : $(this).attr('action'), 
     type : $(this).attr('method'), 
     dataType: 'json', 
     data : $(this).serialize(), 
     success : function(data) { 
        for(var id in data) { 
         jQuery('#' + id).html(data[id]); 
        } 
        } 
    }); 

    return false; 
}); 

}); 
+0

正是我一直在寻找,谢谢兄弟。 – 1337holiday 2010-09-13 04:13:37

+0

总是使用'hasOwnProperty'检查'for ... in'循环中的元素,否则您也可能遍历其原型的属性。 – 2011-05-11 14:08:05