有谁知道php中用jquery实现ajax获取数据对象的方法?

就是前台调用另外一个php页面来获取数据,前台  
$.post("index.php?a=diary_view2&action=first", {t:ts}, function(data){
if (data.length >=2){
$("#d_id").val(data.name); //用户名赋值
}
})
后台是要查询出一个用户(用户名,用户ID等一些信息)再把这些信息返回到前台显示。
但是前台现在我只要一个用户名,这个后台该怎么写。

你是说用 php 获取 远程的网页?
你去看这个函数:file_get_contents
---------------------------------------------
你的事: 后台要查询出一个用户(用户名,用户ID等一些信息)再把这些信息返回到前台显示。
但是前台现在我只要一个用户名,这样的话,最好用 json 格式。

比如,后台这样写 :
echo '{"name":'. json_encode('前端攻城师') .',"id":1000,"area":'. json_encode('中国') .'}';
然后前台代码:
<script>
$.post("index.php?a=diary_view2&action=first" , function(data){
alert(data.name);
},'json');
</script>
这样,就可以获取 名字啦。。。

如果还有问题,设我为最佳,然后去 jQuery 爱好者论坛 去提问。。。
有高手帮你回答。。。追问

中文的转不过来,传过来的数据为空

追答

这个代码肯定是可以的,中文在服务器就会被编码成累死%23%665%456
js ,会把它还原过来 哦
-----------------------
你的信息太少,请多给信息好做判断。

追问

我自己刚才试着用iconv转好了。但是怎么判断数组里有没有数据。前台怎么写用length还是size或者别的什么判断啊?

追答

一般这样,返回的格式为:
echo '{"status":"ok","name":'. json_encode('前端攻城师') .',"id":1000,"area":'. json_encode('中国') .'}';
就是加一个 status。
你在前台,只需要判断这个的状态,这个状态时php 处理的结果。。
---------------------
当然你可以在前端用 js 判断,但是数据类型多,很麻烦,这样的话,就很统一了。

追问

谢谢了,终于解决了。

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-07-17
一般通过json格式进行数据传输,php端可以将数组或对象序列化回传给客户端,比如服务器端:
$data = array('a' => 'hello', 'b' => 'world');
echo serialize($data);
客户端:
$.get('server_script.php', function(response) {
response = eval('(' + response + ')');
// ... 继续你要处理的事情
});
第2个回答  2011-07-18
关键是你后台怎么写... 而不是前台怎么写.
如果你前台只要用户名, 后面可以这样
index.php?a=diary_view2&action=first 输出的东西应该是:
json_encode(array('username' => $username));

$.ajax({
dataType: 'json',
type: 'post',
data: {.....要 post 的数据 },
url: index......,
success: function(res) {
if (res.length > 0) {
alert(res.username');
}
}
});
相似回答
大家正在搜