Django で AJAX リクエストからパラメーター フォームを取得します。
base.html:
<form method="POST">{% csrf_token %}
First name: <input type="text">
<input type="submit" value="Register" id="register">
</form>
main.js:
$(document).ready(function(){
$("#register").live("click", function(e){
$.post("/", {
name: "MY TEXT",
});
});
});
ビュー.py:
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.core.context_processors import csrf
def home(request):
if request.method == 'POST':
print request.POST['name']
return render_to_response('registration.html', {},
context_instance=RequestContext(request))
はい、現時点では、私の JS はテキスト形式から実際のデータを取得せず、静的テキスト「MY TEXT」のみを送信することを知っています。しかし、ボタンを押すと、 "MultiValueDictKeyError at / "Key 'name' not found in "" が発生します
私が間違っていることは何ですか?
コードを変更しました: main.js
$(document).ready(function(){
$("#register").live("click", function(e){
e.preventDefault();
$.post("/", {
name:'MY TEXT'
});
});
});
base.html:
<form method="POST">{% csrf_token %}
First name: <input type="text" name="name">
<br>
<input type="submit" value="Register" id="register">
</form>
それはうまくいきます、ありがとう!
ただし、次の 2 つの質問があります。
- この場合、「MY TEXT」はどこに送信されますか? 名前フィールドから実際のデータを返し、「MY TEXT」を返しません
- ページはまだリロード中です。そして、それを完全に AJAX にしたかったのです。POSTリクエストからMySQLデータベースにデータを追加するPython関数を作成し、操作の結果をAJAXスクリプトに返すことを意味します。そして、ページのリロードなしですべて。これどうやってするの?