必须使用 html5 在 phonegap 中设计一个应用程序,其中必须从表单中收集一些数据并存储在数据库中。
问题是,我怎样才能在不使用 php 和 'post' 方法的情况下从表单中获取这些数据..?
假设用户必须在继续之前登录,现在我如何从表单中获取用户名和密码并将其与数据库匹配。问题不在于
问问题
2156 次
1 回答
1
Phonegap 是完整的 javascript api。你不会有一个带有 html 表单发送请求/响应的系统。您必须以使用服务的方式设计您的应用程序。尝试添加一些 JavaScript 库,如jquery mobile、sencha或只是jquery(如下面的示例)来帮助您的工作。这些库与 Phonegap 一起工作得很好(而 sencha 是最优化的)。
- 写下你的服务端;它可能只是简单的 php 页面,可以像标准的 html 应用程序一样处理表单参数。你需要一个服务器端来访问数据库;因此,将此文件托管在应用程序可以访问的某个 php/apache 上。
--
<?php
/* mySaveService.php */
/* do something like $_GET['param1'] mysql_connect() / mysql_query() and all the stuff */
?>
--
- 设计客户端的视图,您可以编写裸 html 代码或使用 Sencha 之类的框架(更简洁、更难的方式)。
--
<form>
<input type="text" name="param1" value="" />
<input type="button" class="submit" value="send" />
</form>
--
- 在您的表单提交或提交按钮单击上添加一个侦听器:
--
$('form .submit').click( function() {
saveInDb($(this).parents('form:first'));
});
--
- 编写一个 javascript 函数,该函数使用表单数据发送ajax 调用。url 不会在同一个域中,一定要允许跨域请求。
--
saveInDb = function($form) {
var myParams = array();
$form.find('input').each(function() {
myParams[$(this).attr('name')] = $(this).val();
});
$.ajax({
url: 'http://domain.com/mySaveService.php',
data: myParams,
success: myCallback
});
}
--
- 不要忘记编写回调函数,以提醒用户一切正常
--
myCallback = function() {
alert('It works');
}
--
- 或者,如果您不需要在一个地方收集所有表单的数据,您可以直接使用localstorage。
我希望它会有所帮助。问候
于 2012-05-16T08:08:57.143 回答