私はプログラミング スタッフが初めてで、現在、php と mysql を使用して IOS アプリ用の Titanium モバイルを試しています。
問題は、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」であることを教えてくれます
なにか提案を?
前もって感謝します。