2011-05-11 104 views
1

我有一个输出json对象的php文件。我想显示一组这些输出的记录,以便在smarty模板中显示。但是,当我回显json对象时,显示如smarty模板中的JSON输出

[{"fname":"kashmiri","lname":"medhi"},{"fname":"Kangkan","lname":"Hazarika"},{"fname":"ikram","lname":"hussain"}] 

在模板外部。我正在使用jQuery getJSON()函数。 的PHP文件:

foreach($res as $a=>$v) 
      { 
       $arr['fname'] = $v->UM_first_name; 
       $arr['lname'] = $v->UM_last_name; 
       $data[] = $arr; 
      } 
      $json_obj = json_encode($data); 
      echo $json_obj; 

JS文件:

$('document').ready(function() 
{ 
    $.getJSON('http://localhost/basic_framework/index.php ?menu=search_22',callBack); 

}); 
function callBack(data) 
{ 
    $.each(data,function(i,fi) 
    { 
     var info ='';  
     info+=dte.lc; 
     info+='<div id="ids">'+fi.fname[0]+'</div>'; 
     info+='<div id="nws">'+fi.lname[0]+'</div>'; 

     $(info).appendTo("#friend_info"); 
    }); 
} 

如果我做了错误的?

+2

我不知道我明白你的问题是什么。哪里出了问题? – 2011-05-11 10:00:49

+0

和Pekka一样。 “dte.lc”从哪里来?你为什么试图在你的JS循环中追加fi.fname [0]而不是fi.fname? – PJP 2011-05-11 10:04:08

+0

对不起.I info + = dte.lc来自我的测试文件。 plz跳过线。而fi.lname [0]是因为它是一个不同用户名的数组。理想情况下,它应该是fi.lname [i]。 – Nitish 2011-05-11 10:10:01

回答

0

如果我理解你是对的,你应该使用return而不是你的回声。 因为你的回声将在另一个线程中,它不会使回调()函数的工作。

+0

我认为PHP脚本是他用$ .getJSON调用调用的脚本。所以回声是好的。 – PJP 2011-05-11 10:05:38

+0

我试过返回$ json_obj;仍然工作:( – Nitish 2011-05-11 10:11:09

+0

也许你应该在你的回调函数中使用jQuery.parseJSON(data)before each()函数? – 2011-05-11 11:10:50