как с помощью phonegap получить данные с удаленного сервера php / mysql

#jquery #json #cordova

#jquery #json #кордова

Вопрос:

Я пытаюсь создать приложение для ios с помощью phonegap

Я хочу, чтобы эти данные с моего удаленного сервера отображались в phonegap. На моем сервере у меня есть php / mysql, на стороне клиента у меня есть phonegap и разрабатываемое приложение в jquery mobile.

Я знаю, что мне нужно использовать jsonp, но у меня проблема.

На стороне сервера я разработал очень простое приложение.

У меня есть две страницы php.

Первая страница php — list.php , отображение списка навигации (главная страница, о нас, галерея). Вторая страница php — text.php отображение информации о list.php . Например, для страницы about отображается информация «о нас», для галереи отображаются изображения и некоторая текстовая информация…

На стороне клиента у меня также есть две HTML-страницы.

list.html — эта страница, с которой я успешно связываюсь list.php использование jsonp.

На list.html — я извлекаю данные со своего удаленного сервера и показываю навигацию (главная страница, о нас, галерея). Так что страница отображает список навигации, ничего особенного.

listtext.html — это проблемная html-страница, которую я не знаю, как решить.

Когда пользователь открывает list.html в браузере он может нажать кнопку «Домой» или кнопку «О нас» (я делаю ссылку в хорошем формате: listtext.html?id= 1), но я не знаю, как разобрать listtext.html . Я полагаю, что мне нужно получить, но я не знаю, как это сделать.

И так далее listtext.html мне нужно увидеть подробную информацию для дома, о нас, галерея.

Я прикрепил код — это listtext.html страница — просто javascript, потому что проблема здесь очевидна

     $(document).ready(function(){
     var output = $('.nesa');

    $.ajax({
        url: 'http://www.example.com/text.php',
         dataType: 'jsonp',
        jsonp: 'jsoncallback',
        timeout: 5000,
        success: function(data, status){
            $.each(data, function(i,item){ 

                 var final= item.id;


                output.append(final);
             });
         },
        error: function(){
            output.text('There was an error loading the data.');
        }
    });

 });
  

это text.php страница:

     <?php

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

включить ‘config.php ‘;

$con = mysql_connect($dbhost, $dbuser, $dbpass) или die («Не удалось подключиться: » . mysql_error()); mysql_select_db($dbname, $con);

$id=$_GET[‘id’]; // Сбор данных из строки запроса

$sql = «выберите * из ios, где id = $id»; $result = mysql_query($sql) или die («Ошибка запроса: » . mysql_error());

$records = array();

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

}

echo $_GET[‘jsoncallback’] . ‘(‘ . json_encode($records) . ‘);’;

 ?>
  

Я уверен, что text.php все в порядке, я закодирован в jason. Я получил вывод jsonp из text.php
Когда я нажимаю mysite.com/text.php?id=1 я получил информацию для «домашней» страницы в формате jason.

Но моя проблема в javascript (jquery), потому что я не знаю, как анализировать.

Итак, не могли бы вы помочь мне, как выполнить синтаксический анализ с помощью jason в javascript.

Спасибо.

Ответ №1:

Попробуйте это:

 success: function(data, status){
   var jsonData = JSON.parse( data );
}
  

И вы можете использовать jsonData
Например, чтобы получить длину jsonData.length

Комментарии:

1. Здравствуйте, мне это не удалось. Я работаю с jquery. Кто-нибудь может мне помочь, я действительно застрял. Спасибо

2. Можете ли вы вставить ответ в формате JSON?

3. Я не получаю никакого ответа. Я смотрю в firefox в консоли, ошибок нет. Есть идеи, как это решить?

4. Вы можете видеть все свои запросы на сервере и ответы в FF, если вы щелкните правой кнопкой мыши на странице, перейдите к элементу проверки и откройте вкладку Сети, и вы увидите свои запросы, если вы нажмете на какой-либо запрос, вы увидите вкладку ответов справа, нажмите на нее, и там будет ваш ответ. Если вы ничего не получаете, значит, что-то не так с вашим php или, возможно, вы отправляете неправильные параметры. Посмотреть изображение

5. Привет, друзья, у меня все еще нет решения. Из запроса с сервера я получил ошибку запроса: у вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с » в строке 1. Но я получил эту ошибку, потому что я не знаю, как написать правильный синтаксис .ajax. Мне нужно в javascript как-то передать get из php. Вы знаете, как это сделать?