2016-06-11 9 views
0

私は、localStorage変数で動的に生成されたPhoneGapアプリケーション用にJSONを解析しようとしています。 PHPは仕事をしていますが、javascriptはデータを解析して表示していません。PhoneGapアプリケーション用のJSONを解析できません

マイPHP:

header("Access-Control-Allow-Origin: *"); 
header('Content-Type: application/json; charset=utf-8'); 

include("conn.php"); 

// Get User ID 
$email = $_GET['email']; 
$useridinit="SELECT userid FROM users WHERE email='".$email."'"; 
$useridgrab=mysql_query($useridinit) or die(mysql_error()); 
$useridq = mysql_fetch_array($useridgrab); 
$userid = $useridq['userid']; 

$data = array(); 
$q = mysql_query("SELECT * 
FROM Msg_Trans 
LEFT JOIN Msg_Master ON Msg_Trans.msgid=Msg_Master.msgid 
LEFT JOIN users ON Msg_Master.fromid=users.userid 
WHERE Msg_Trans.toid='".$userid."' ORDER BY Msg_Trans.status DESC"); 

while ($row=mysql_fetch_object($q)){ 
    $data[]=$row; 
} 
echo json_encode($data); 

マイJS:

var email = localStorage.getItem('email'); 
    var url = "http://anglertrack.pixeloft.com/mobile/conn/messages.php?callback=?&email="+email; 

    $.getJSON(url,function(result){ 

    $.each(result, function(i, field){ 
     var date=field.posted_date; 
     var from=field.fromid; 
     var subject=field.msgsub; 
     $("#messageList").append("<li><a class='messageLink' href='message.html?date="+date+"&from="+from+"&subject="+subject+"'><span class='message'>from:"+from+"</span><h2>"+ date + " </h2><p>"+ subject +"</p></a></li>"); 

    }); 



    }); 

マイHTML:あなたのURLで

<ul id="messageList"> 

     </ul> 
+1

私はあなたのコード内の任意のミスを見つけることができません。期待通りにJSONデータを取得していますか? 'result'をロギングして' field'オブジェクトの充実した配列であることを確認してください。また、ページが[ロード済み](https://api.jquery.com/ready/)であることを確認してください。 –

+0

あなたのコメントのおかげで@Duncan JSONが取り出されていると確信しています。ここには変数がそのままのリンクがありますので、JSON URLの例を完全に見ることができます:http://anglertrack.pixeloft.com/mobile/ conn/messages.php?callback=?&[email protected] – pixeloft

答えて

2

あなたがある、コールバック名(callback=?)を定義していますjQueryを使用する場合は不要です。以下のコードを試してみてください。

var url = "http://anglertrack.pixeloft.com/mobile/conn/[email protected]"; 
 

 
$.getJSON(url, function(result) { 
 
    $.each(result, function(i, field) { 
 
    var date = field.posted_date; 
 
    var from = field.fromid; 
 
    var subject = field.msgsub; 
 
    $("#messageList").append("<li><a class='messageLink' href='message.html?date=" + date + "&from=" + from + "&subject=" + subject + "'><span class='message'>from:" + from + "</span><h2>" + date + " </h2><p>" + subject + "</p></a></li>"); 
 
    }); 
 
});
<ul id="messageList"></ul> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

+0

おかげさまでダンカン。私はコールバックパラメータを削除しようとしましたが、まだ運がありません。 – pixeloft

+0

@pixeloft私の回答を作業例で更新しました –

+0

あなたは命を救っています!ありがとうございました!これは完全に動作します! – pixeloft

関連する問題