我很擅长使用jquery和jquery mobile,但我想知道是否有一种简单的方法(或教程最好)将数据库(远程和本地)绑定到jquery移动站点(最好不使用php) 。
答案 0 :(得分:5)
您可以通过JavaScript使用HTML5 localStorage,以下是教程的解释和一些链接: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
答案 1 :(得分:0)
使用http://westcoastlogic.com/lawnchair/
它提供了许多存储方式,您可以按顺序放置所有适配器(如何存储的选项),以便它可以获取第一个可用的适配器。浏览器。
它也使用JSON格式,无论你是否想使用localstorage或sqlite,所以你只需要处理JSON数据。
答案 2 :(得分:0)
如果你想要一个数据库,那么移动浏览器中的SQLLite会以Web SQL Databases的形式得到广泛的支持,目前大多数Android和iPhone设备都支持它。
要查看工作示例,请检查以下链接:
http://desalasworks.com/html5-databases-on-iphone/
请注意,SQLLite中可用的SQL语言比(我假设的)MySQL数据库更受限制。您可以创建/删除表,选择,插入和更新,但某些更高级的操作将会丢失。