Загрузка JSON с помощью jQuery Mobile & Phonegap? - PullRequest
0 голосов
/ 25 октября 2011

В основном у меня есть php-скрипт, расположенный на сервере, который генерирует JSON-файл со списком мест из базы данных mysql. Используя jQuery Mobile, я разрабатываю приложение для отображения этих мест. Мой код работает в Chrome & Safari, однако, когда я перевожу его на Phonegap, он не работает. Я искал по всему интернету, но не могу найти ответ: (.

Файл php для генерации JSON (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 -->

Этот код работает в Chrome & Safari, однако при запуске в симуляторе xCode с Phonegap он не загружает JSON.

Любая помощь будет высоко ценится:)

Ответы [ 2 ]

5 голосов
/ 19 января 2012

Я не думаю, что проблема имеет какое-либо отношение к коду сервера (PHP), если только вы не создаете недопустимый JSON. Вопрос должен быть помечен с помощью JavaScript, а не PHP. В любом случае, есть отличная статья, описывающая очень похожий тип приложения. Это даже включает пример кода. Посмотрите:

Пример приложения с использованием jQuery Mobile и PhoneGap

0 голосов
/ 03 ноября 2011

Чувак, это серверный скрипт, который он не запустит, если не будет размещен на сервере с этими языками.Я сталкиваюсь с подобной проблемой. Одним из предложений было внедрение AJAX для извлечения данных с php-сайта и возврата данных.Я просто хочу переслать всю страницу через окно веб-просмотра Safari (которое вы должны установить в разрешениях разрыва телефона).Проблема в том, что я получаю весь хром Safari сверху и снизу, пытаясь выяснить, как его обрезать, чтобы мне не пришлось перекодировать с помощью AJAX, чтобы вытянуть PHP-сервер данных.

...