0

首先我要指出的是,我就像一个紧张的程序员或紧张的学习者。我觉得我想快速学习东西,所以我开始很快检查网站和书籍,如果我觉得我正在阅读的内容不能满足我的需求,那么我就关闭它并开始做其他事情。我只是想知道这种行为对你来说是否熟悉。

我有以下问题。我刚刚开始学习如何在 web2py 中编程,我需要将 javascript 输入存储在 sqlite 数据库中,例如,我有下表:

db = DAL ('sqlite://storage.sqlite')
db.define_table('company', Field('name', notnull = True, unique = True), format = '%(name)s')
db.define_table(
   'contact',
   Field('name', notnull = True),
   format = '%(name)s'
)

and I have the following script code

li.innerHTML = document.getElementById('task').value;

所以我需要将该 document.getElementById 存储在数据库中。你能指出我需要学习的主题才能完成这项任务吗?

4

1 回答 1

1

首先阅读文档的jQuery 和 Ajax章节。特别是,检查ajax功能

如果该task元素是带有“name”属性的表单元素,则可以ajax如下调用函数(假设表单元素的名称为“task”):

ajax("{{=URL('default', 'insert_task')}}", ['task']);

如果task元素不是表单元素,您可以通过查询字符串将其传递给 web2py:

ajax("{{=URL('default', 'insert_task')}}" + '?task=' + encodeURIComponent(li.innerHTML));

然后在 web2py 控制器中,该insert_task操作将处理插入:

def insert_task():
    db.mytable.insert(task=request.vars.task)
    return 'Success'

请注意,该ajax函数接受第三个参数,它可以是 (a)id应插入返回值的 HTML 元素,(b) 将传递返回值的 Javascript 函数,或 (c) 字符串 " :eval",这将导致返回的值被解释为 Javascript 并进行评估。如果您想在页面上显示一些消息或在插入完成后对显示进行一些更改,您可以使用此参数。

最后,如果该ajax功能不能满足您的需要,您始终可以使用jQuery'sAjax 工具或任何其他进行 Ajax 调用的 Javascript 方法。

于 2016-11-07T13:21:55.620 回答