Php smarty模板中的JSON输出

Php smarty模板中的JSON输出,php,json,smarty,Php,Json,Smarty,我有一个输出json对象的php文件。我想在smarty模板中显示这些输出的一组记录。但是当我回显json对象时,它显示为 [{"fname":"kashmiri","lname":"medhi"},{"fname":"Kangkan","lname":"Hazarika"},{"fname":"ikram","lname":"hussain"}] 在模板的外部。我正在使用jQuery getJSON()函数。 PHP文件: foreach($res as $a=>$v)

我有一个输出json对象的php文件。我想在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");
    });
}   
$('document').ready(函数()
{
$.getJSON('http://localhost/basic_framework/index.php ?菜单=搜索_22',回调);
});
函数回调(数据)
{
$。每个(数据、功能(i、fi)
{   
var信息=“”;
info+=dte.lc;
信息+=''+fi.fname[0]+'';
信息+=''+fi.lname[0]+'';
$(信息)。附加到(“#朋友信息”);
});
}   

我哪里做错了

如果我没听错,你应该用return而不是echo。
因为您的echo将位于另一个线程中,并且它无法使callback()函数工作。

如果我理解正确,您应该使用return而不是echo。
因为您的echo将位于另一个线程中,并且它无法使callback()函数工作。

我不确定是否理解您的问题。哪里出了什么问题?和Pekka一样。“dte.lc”从何而来?为什么在JS循环中尝试附加fi.fname[0]而不是fi.fname?对不起,我的测试文件中有I info+=dte.lc。请跳过这一行。和fi.lname[0],因为它是不同用户名称的数组。理想情况下,它应该是fi.lname[i]。输出的JSON似乎没有fname和lname中的数组,而是普通字符串。$。each()已经在数组中迭代,因此您的fi对象只是一个具有一个fname属性和一个lname属性的对象。好的,谢谢PJP…我将其修改为info+=''+fi.fname+'';bt仍然没有在模板中显示任何内容我不确定我是否理解你的问题。哪里出了什么问题?和Pekka一样。“dte.lc”从何而来?为什么在JS循环中尝试附加fi.fname[0]而不是fi.fname?对不起,我的测试文件中有I info+=dte.lc。请跳过这一行。和fi.lname[0],因为它是不同用户名称的数组。理想情况下,它应该是fi.lname[i]。输出的JSON似乎没有fname和lname中的数组,而是普通字符串。$。each()已经在数组中迭代,因此您的fi对象只是一个具有一个fname属性和一个lname属性的对象。好的,谢谢PJP…我将其修改为info+=''+fi.fname+'';bt仍然没有显示模板中的任何内容我认为PHP脚本就是他用$.getJSON调用的脚本。所以echo是可以的。也许您应该在每个()函数之前在回调中使用jQuery.parseJSON(数据)?因为他使用$.getJSON(),所以不需要解析数据。jQuery已经做到了这一点,我认为PHP脚本就是他用$.getJSON调用的脚本。所以echo是可以的。也许您应该在每个()函数之前在回调中使用jQuery.parseJSON(数据)?因为他使用$.getJSON(),所以不需要解析数据。jQuery已经做到了这一点。