繁体   English   中英

Phonegap-使用Ajax将数组从mvc控制器发送到Javascript

[英]Phonegap - Send array from mvc controller to Javascript using Ajax

我正在使用phonegap,并且试图从控制器发送编码为json的数组以进行查看。

在我的控制器(服务器端)中:

$users = Model_Users::find(1);
$a=$users->to_array();
return json_encode($a);

在我看来(使用phonegap进入智能手机应用程序):

$(document).ready(function() {  
    $.ajax({
        url: 'my/url...',
                method: 'POST',
                data: {

                },
                success: function(data) { 
                        alert(data); 
                }
        });  
});

在我收到以下警报的情况下,此工作正常,实际上是这样:

data = {"name":"Jhon","surname":"Larry","age":"25"}

这项工作是因为查询的结果只有一行。

相反,当我尝试获得多个查询结果时,例如:

$users = Model_Users::find('all');
$a=array();
foreach ($users as $user){
    array_push($a,$user->to_array());
}
return json_encode($a);

在这种情况下,将出现一个空响应,实际上我收到了此警报:

data = []

问题是什么? 提前致谢

我会根据这些评论,根据我们已经知道的内容,尝试使用一些技巧来构建答案。

首先,我们确定JSON有效(例如jsonlint.com)。

因此,现在,我们完全可以确定问题出在PHP /服务器端。 我的解决方案:

  1. 注意不要在需要的值之前回显/返回某些内容;
  2. echo改变return ;
  3. 添加exit; 在回显值之后的语句,以确保服务器答案中不包含其他任何字符;
  4. 并非完全需要,但是您甚至可以考虑设置header('Content-Type: application/json');
  5. 调试查看控制台并使用console.log而不是alert() (有很多线程解释了区别)

希望这会有所帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM