我是编程人员的新手,现在正在尝试使用 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/