2012-06-22 86 views
0

当我尝试使用jQuery和AJAX在页面之间进行通信时,我遇到了一个奇怪的错误。我根本无法获得$ .post()函数的工作!

$(document).ready(function() { 
    $('#form').submit(function() { 
     $.post('test.php', {'name': 'joey', 'age': 12}, function(data){ 
        alert(data); 
     }); 

     return false; 
    }); 
});  

test.php的:

<php? 
    print_r($_POST); 
?> 

会发生什么,当我做,这是我得到[对象的XMLDocument]警报,但如果我加上“文字”,因为在后的最后一个参数,它会通过文件的完整php代码发出警报。

我的问题是,当我打电话:

$.post('test.php', {'name': 'joey', 'age': 12}, function(data){ 
       $('#content').html(data); 
     }); 

这对萤火虫带来了一个错误。 '内容'是一个div。它在我做.html('test')时有效,但如果我做.html(数据)则不会。

任何想法我做错了什么?

编辑: 这里是一个Dropbox的文件夹,我的整个项目(如3个文件),如果任何人都可以花3-4分钟翻翻它,它会帮助我一吨!我一直呆在这里几天

https://www.dropbox.com/sh/ns73titud46kea7/aElaYx728G

+0

这可能是因为'data'是无效的HTML。 –

+0

console.log您的数据,并检查它是否是预期的。 –

+0

使用正确的PHP语法:

回答

2
<php? 
    print_r($_POST); 
?> 

应该读

<?php 
    print_r($_POST); 
?> 

我假设PHP被解释为一个XML节点,但显然它是无效的html

+0

这是一个错字,当我输入这个,我确实有正确的PHP标签。对不起:/ – nickelxk5

+0

@ nickelxk5我跑了你的代码你发布,并在我没有权限设置,但它没有修改任何代码时工作的错误。也许你应该再试一次。 – matt3141

1

应该没关系,但是试试设置数据的类型为'html'

$.post('test.php', {'name': 'joey', 'age': 12}, function(data){ 
    $('#content').html(data); 
}, 'html'); 

,或者尝试使用​​

$('#content').load('test.php', {'name': 'joey', 'age': 12}); 

,你可能也想尝试把12报价,只是规则的东西出来......

$('#content').load('test.php', {'name': 'joey', 'age': '12'}); 
0

我有点晚了回复,但可能是你有无效的JSON?

{'name': 'joey', 'age': 12} 

应该

'{"name": "joey", "age": "12"}'