php - 如何从 php 向 Titanium mobile 发送和接收多维数组?

标签 php ios multidimensional-array titanium type-conversion

我是编程人员的新手,现在正在尝试使用 php 和 mysql 为 IOS 应用程序使用 Titanium mobile。

问题是,当我从 DB 获取一些数组数据并尝试传递给 Titanium 时,“this.responseText”包含“null”。

这是部分,

    loadReq.onload = function()  
    {  
        var json = this.responseText;
        var response = [];
        response = JSON.parse(json);
        Ti.API.info(response);
    };  

    loadReq.onerror = function(event)
    {
        alert("Network error");
        Ti.API.debug(event);
        Ti.API.info(event);
    };

    loadReq.open("POST","http://localhost/myAppName/post_loading.php");
        var params = {
            userid: win.userid
        };
        loadReq.send(params);

这是我的 php 代码。

    <?php
    $con = mysql_connect('localhost','root','root');
    if (!$con)
    {
        echo "Failed to connect.";
        exit;
    }
    $db = mysql_select_db('myAppName');
    if (!$db)
    {
        echo "Failed at selecting db.";
        exit;
    }

    $userid = $_POST['userid'];

    $sql = "here is sql order which will fetch array data based on $userid";
    $query = mysql_query($sql);
    $response = array();

    if (mysql_num_rows($query) > 0)
    {
        $row = mysql_fetch_array($query);
        $response = $row;
        echo json_encode($response);
    }
    else
    {
        echo "there is no such data"; 
    }
    ?>

php文件从DB中获取的数组数据是这样的,

    Array(
        [0] => Array(
                'id' => '1',
                'name' => 'name1',
                'sex' => 'm',
                'age' => '20'
               ),
        [1] => Array(
                'id' => '3',
                'name' => 'name3',
                'sex' => 'f',
                'age' => '25'
               ),
        [2] => Array(
                'id' => '5',
                'name' => 'name5',
                'sex' => 'm',
                'age' => '18'
               )
    )

我测试了一些案例以确保 HTTPClient 正常工作,sql 顺序在语法上是正确的,并且能够正确传递单个数据(不是多维的,只是数组、值和单词)。

但是,多维数组目前不可用。 Ti.API.info 只是告诉我响应是“null”

有什么建议吗?

提前致谢。

最佳答案

请务必在回显 json 之前设置您的内容类型。在回显之前添加:

header('Content-type: application/json');

这会在 http 请求中设置一个 header ,以便 titanium 中的 javascript 引擎知道如何正确处理响应数据

关于php - 如何从 php 向 Titanium mobile 发送和接收多维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10568790/

相关文章:

ios - 使用的是哪个手势识别器?

Xcode 11 GM 中缺少 iOS 12.4

JavaScript - 等同于 PHP 类 self::

php - 在 PDO 中使用绑定(bind)

android - 从 J2EE 服务器向 android 发送实时位置更新

sql - 数据库返回多维结果

android - 如何从 Android 中的文本文件创建二维数组?

javascript - 从多维对象数组中查找 ID

php - 如何从我的站点缓存脚本和图像?

php - 如何在 php 中将 2 个参数传递给 array_map 函数?