Я новичок в использовании jquery и jquery mobile, но мне было интересно, есть ли простой способ (или желательно учебник) связать базу данных (удаленную и локальную) с мобильным сайтом jquery (желательно не используя php).
Добавление базы данных на мобильный сайт jquery
Ответы (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
используйте http://westcoastlogic.com/lawnchair/
Он предлагает множество способов хранения, и вы действительно можете расставить все адаптеры (варианты как хранить) по порядку, чтобы он подхватывал первый доступный в браузере. Кроме того, он использует формат JSON, независимо от того, хотите ли вы использовать localstorage или sqlite, поэтому вам придется иметь дело только с данными JSON.
Если вам нужна база данных, существует широко распространенная поддержка SQLLite внутри мобильного браузера в виде баз данных Web SQL, который в настоящее время поддерживается на большинстве устройств Android и iPhone.
Чтобы увидеть рабочий пример, перейдите по следующей ссылке:
http://desalasworks.com/html5-databases-on-iphone/
Обратите внимание, что язык SQL, доступный в SQLLite, более ограничен, чем (как я предполагаю) ваша база данных MySQL. Вы можете создавать/удалять таблицы, выбирать, вставлять и обновлять, но некоторые из более сложных операций будут отсутствовать.