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関数を呼び出すことができます (フォーム要素の名前が「タスク」であると仮定します)。

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関数は、id(a) 戻り値が挿入される HTML 要素の 、(b) 戻り値が渡される Javascript 関数、または (c) 文字列 " :eval" を使用すると、戻り値が Javascript として解釈され、評価されます。ページにメッセージを表示したり、挿入の完了後に表示を変更したりする場合は、この引数を使用できます。

最後に、ajax関数がニーズに合わない場合は、いつでもjQuery'sAjax 機能を使用するか、Ajax 呼び出しを行う他の Javascript メソッドを使用できます。

于 2016-11-07T13:21:55.620 に答える