2016-11-07 3 views
0

最初に私が指摘したいのは、私は神経質なプログラマーまたは神経の学習者のようなものです。私は物事をすばやく学びたいと思うように感じるので、ウェブサイトや書籍をすばやくチェックし始めます。私が読んでいるものが私の必要性を満たしていないと感じたら、それを閉じて何か他のことをやり始めます。私はちょうどそのような種類の行動があなたによく似ているかどうか疑問に思っています。web2pyでJavaScriptを使用してデータベースに要素を格納する

私は以下の問題があります。私はweb2pyの中にプログラムする方法を学習し始めていると私は例えば、私は以下の表を持っているので、SQLiteのデータベースにはJavaScriptの入力を保存する必要があります。

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ことを格納する必要がありますデータベース。このような課題を達成するために勉強する必要のあるトピックを指摘できますか?

答えて

1

はじめに、jQuery and Ajaxの章を読んでください。特に、ajax functionをチェックしてください。

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

の場合:次のように

task要素は「name」属性を持つフォーム要素がある場合、あなたはajax関数を呼び出すことができます(フォーム要素の名前と仮定すると、「タスク」です)

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

はその後web2pyのコントローラでは、insert_taskアクションは、インサートを扱うでしょう:task要素があなたの代わりに、クエリ文字列を経由してweb2pyのためにそれを渡すことができ、フォーム要素ではありません

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

注、ajax関数は(a)の戻り値がされる戻り値が挿入されるHTML要素のid、(b)は、Javascript機能れることができる第三の引数を取り渡された文字列、または(c)文字列 ":eval"。戻り値がJavascriptとして解釈され、評価されます。この引数は、ページに何らかのメッセージを表示する場合や、挿入が完了した後にディスプレイに何らかの変更を加えたい場合に使用できます。

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

+0

これは、私にはウェブサイトが新しい価値を保存するためにリフレッシュする必要があると感じています。私がデータベースに追加しようとしている値はリスト要素なので、ウェブサイト全体をリロードする必要はありません。 – TheMathNoob

+0

いいえ、それはAjaxを使用するポイントです。ページを更新せずにブラウザからサーバーにデータを送信できます。 Ajaxの呼び出しはブラウザにいくつかのデータを返すことができます。このデータは、ページを更新するために使用する可能性がありますが、ページをリロードすることはありません。 Ajaxについて学び、Javascriptを使ってブラウザーの表示を更新しなければならないかもしれません。 – Anthony

関連する問題