2011-10-25 11 views
0

基本的に私は、mysqlデータベースから場所をリストするJSONファイルを生成するサーバー上にphpスクリプトを配置しています。 jQuery Mobileを使用して、私はこれらの場所を表示するアプリケーションを開発しています。私のコードはChrome & Safariで動作しますが、Phonegapに移植すると機能しません。私はすべてインターネット上で検索しましたが、答えを見つけることができません:(jQuery Mobile&Phonegapを使用してJSONをロードしていますか?

(json.php)JSONを生成するためのPHPファイル:。

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


$server = "localhost"; 
$username = "xxx"; 
$password = "xxx"; 
$database = "xxx"; 

$con = mysql_connect($server, $username, $password) or die ("Could not connect: " . mysql_error()); 
mysql_select_db($database, $con); 

$sql = "SELECT * FROM places ORDER BY name ASC"; 
$result = mysql_query($sql) or die ("Query error: " . mysql_error()); 

$records = array(); 

while($row = mysql_fetch_assoc($result)) { 
    $records[] = $row; 
} 

mysql_close($con); 

echo $_GET['jsoncallback'] . '(' . json_encode($records) . ');'; 
?> 
私のアプリ内に位置

私のJavascriptファイル(ロードJSONそして、)それが表示されます。

$('#places').bind('pageinit', function(event) { 
    getPlaces(); 
}); 


function getPlaces() { 

    var output = $('#placeList'); 

    $.ajax({ 
     url: 'http://www.mysite.com/json.php', 
     dataType: 'jsonp', 
     jsonp: 'jsoncallback', 
     timeout: 5000, 
     success: function(data, status){ 
      $.each(data, function(i,item){ 
       var place = '<li><a href="">'+item.name+'<span class="ui-li-count">' 
       + item.checkins+'</span></a></li>'; 

       output.append(place); 
      }); 
      $('#placeList').listview('refresh'); 
     }, 
     error: function(){ 
      output.text('There was an error loading the data.'); 
     } 
    }); 

} 

HTMLは次のようになります。

<div data-role="content"> 
      <h3>Places</h3> 
      <ul data-role="listview" id="placeList" data-inset="true"> 

     </ul> 
</div><!-- /content --> 

このコードはクローム012で動作しますSafariしかし、PhoneGapでxCodeシミュレータを実行すると、JSONはロードされません。

任意の助けもいただければ幸いです:)その実装は、これらの言語を使用してサーバ上でホストされていない限り、それは実行されませんサーバー側のスクリプトです

答えて

0

おい、 を。私は同様の問題に遭遇しています。一つの提案は、PHPサイトからデータを取得し、データを返すAJAXを実装することでした。私はあまりにもSafariのWebviewウィンドウ(これはあなたがphonegapの権限で設定する必要があります)全体のページを転送するlook'nています。問題は、上と下のすべてのSafariのChromeを取得して、それをトリミングする方法を理解しようとしているため、PHPデータサーバー側を引き出すためにAJAXをコード化する必要はありません。

+0

ルックのは役に立つかもしれない:顔をしています。しかし、XcodeでPhoneGapプロジェクトに.phpファイルを置くと、それは実行されません。なぜなら、私はそのサーバー側のスクリプトを言ったように...しかし、JQueryのものを実装するためにJavaScriptを使用すると、うん。 –

+1

私は、コードを見て、PHPファイルがサーバー上で動作すると仮定します。 –

5

無効なJSONを生成していない限り、問題はサーバーコード(PHP)とは関係がありません。質問はPHPではなくJavaScriptでタグ付けする必要があります。とにかく、非常によく似たタイプのアプリケーションを記述する優れた記事があります。サンプルコードも含まれています。ライブラリとしてJQuerryよう

Sample Application using jQuery Mobile and PhoneGap

関連する問題