在 web2py 中使用 JavaScript 将元素存储在数据库中
storing elements in a database by using JavaScript in web2py
我想指出的第一件事是,我就像一个紧张的程序员或紧张的学习者。我觉得我想快速学习东西,所以我开始快速查看网站和书籍,如果我觉得我正在阅读的内容不能满足我的需要,那么我就关闭它并开始做其他事情。我只是想知道您是否觉得这种行为很熟悉。
我有以下问题。我刚刚开始学习如何在 web2py 中编程,我需要将 javascript 输入存储在 sqlite 数据库中,因此例如我有以下 table:
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 存储在数据库中。你能指出我需要学习哪些主题才能完成这样的任务吗?
首先阅读 jQuery and Ajax chapter of the documentation. In particular, check out the ajax
function。
如果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) HTML 元素的 id
应该插入返回值的位置,(b)一个 Javascript 函数,返回值将被传递到该函数,或 (c) 字符串“:eval”,这将导致返回值被解释为 Javascript 并被评估。如果要在页面上显示一些消息或在插入完成后对显示进行一些更改,则可以使用此参数。
最后,如果 ajax
功能不能满足您的需要,您可以随时使用 jQuery's
Ajax 工具,或任何其他 Javascript 方法制作 Ajax 来电。
我想指出的第一件事是,我就像一个紧张的程序员或紧张的学习者。我觉得我想快速学习东西,所以我开始快速查看网站和书籍,如果我觉得我正在阅读的内容不能满足我的需要,那么我就关闭它并开始做其他事情。我只是想知道您是否觉得这种行为很熟悉。
我有以下问题。我刚刚开始学习如何在 web2py 中编程,我需要将 javascript 输入存储在 sqlite 数据库中,因此例如我有以下 table:
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 存储在数据库中。你能指出我需要学习哪些主题才能完成这样的任务吗?
首先阅读 jQuery and Ajax chapter of the documentation. In particular, check out the ajax
function。
如果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) HTML 元素的 id
应该插入返回值的位置,(b)一个 Javascript 函数,返回值将被传递到该函数,或 (c) 字符串“:eval”,这将导致返回值被解释为 Javascript 并被评估。如果要在页面上显示一些消息或在插入完成后对显示进行一些更改,则可以使用此参数。
最后,如果 ajax
功能不能满足您的需要,您可以随时使用 jQuery's
Ajax 工具,或任何其他 Javascript 方法制作 Ajax 来电。