Добавление базы данных на мобильный сайт jquery

Я новичок в использовании jquery и jquery mobile, но мне было интересно, есть ли простой способ (или желательно учебник) связать базу данных (удаленную и локальную) с мобильным сайтом jquery (желательно не используя php).


person user1062411    schedule 23.11.2011    source источник


Ответы (3)


Вы можете использовать HTML5 localStorage через JavaScript, вот объяснение и несколько ссылок на учебные пособия: http://www.html5rocks.com/en/features/storage

...в настоящее время существует несколько технологий, позволяющих приложению сохранять данные на клиентском устройстве...

Если вы хотите взаимодействовать со своим сервером, вам нужно будет использовать язык сценариев на стороне сервера. Довольно просто использовать AJAX для связи с вашим сервером:

JS--

//run the following code whenever a new pseudo-page is created
$(document).delegate('[data-role="page"]', 'pagecreate', function () {

    //cache this page for later use (inside the AJAX function)
    var $this = $(this);

    //make an AJAX call to your PHP script
    $.getJSON('path_to/server/script.php', function (response) {

        //create a variable to hold the parsed output from the server
        var output = [];

        //if the PHP script returned a success
        if (response.status == 'success') {

            //iterate through the response rows
            for (var key in response.items) {

                 //add each response row to the output variable
                 output.push('<li>' + response.items[key] + '</li>');
            }

        //if the PHP script returned an error
        } else {

            //output an error message
            output.push('<li>No Data Found</li>');
        }

        //append the output to the `data-role="content"` div on this page as a listview and trigger the `create` event on its parent to style the listview
        $this.children('[data-role="content"]').append('<ul data-role="listview">' + output.join('') + '</ul>').trigger('create');
    });
});

PHP--

<?php

//include your database connection code
include_once('database-connection.php');

//query your MySQL server for whatever information you want
$query = mysql_query("SELCT * FROM fake_table WHERE fake_col='fake value'", $db) or trigger_error(mysql_error());

//create an output array
$output = array();

//if the MySQL query returned any results
if (mysql_affected_rows() > 0) {

    //iterate through the results of your query
    while ($row = mysql_fetch_assoc($query)) {

        //add the results of your query to the output variable
        $output[] = $row;
    }

    //send your output to the browser encoded in the JSON format
    echo json_encode(array('status' => 'success', 'items' => $output));
} else {

    //if no records were found in the database then output an error message encoded in the JSON format
    echo json_encode(array('status' => 'error', 'items' => $output));
}
?>

Вы также можете отправлять данные в свой PHP-скрипт и добавлять их в базу данных.

Вот несколько страниц документации для функций, использованных выше:

jQuery .getJSON(): http://api.jquery.com/jquery.getjson

PHP json_encode(): http://www.php.net/json_encode

person Jasper    schedule 23.11.2011

используйте http://westcoastlogic.com/lawnchair/
Он предлагает множество способов хранения, и вы действительно можете расставить все адаптеры (варианты как хранить) по порядку, чтобы он подхватывал первый доступный в браузере. Кроме того, он использует формат JSON, независимо от того, хотите ли вы использовать localstorage или sqlite, поэтому вам придется иметь дело только с данными JSON.

person ghostCoder    schedule 24.11.2011

Если вам нужна база данных, существует широко распространенная поддержка SQLLite внутри мобильного браузера в виде баз данных Web SQL, который в настоящее время поддерживается на большинстве устройств Android и iPhone.

Чтобы увидеть рабочий пример, перейдите по следующей ссылке:

http://desalasworks.com/html5-databases-on-iphone/

Обратите внимание, что язык SQL, доступный в SQLLite, более ограничен, чем (как я предполагаю) ваша база данных MySQL. Вы можете создавать/удалять таблицы, выбирать, вставлять и обновлять, но некоторые из более сложных операций будут отсутствовать.

person Steven de Salas    schedule 25.11.2011