フォームが送信されるデータベースとは異なるデータベースを使用して2つのドロップダウンが入力されるアイテムを追加するために使用されるフォームがあります。ドロップダウンにAJAXを追加したいのですが、最初のドロップダウンで1つのアイテムを選択すると、AJAXを使用して2番目のドロップダウンのデータが自動的に入力されます。問題は、フォームに同じビューを使用してデータを入力しているため、is.ajax()呼び出しを使用していても機能しないことです。
これが私のAJAXコードです:
function get_data(){
// alert('test');
new Ajax.Request('/abc/abc/add', {
method: 'POST',
parameters: $H({'type':$('id_data').getValue()},
{'csrfmiddlewaretoken':$( "csrfmiddlewaretoken" ).getValue()}),
onSuccess: function(transport) {
var e = $('id_def')
if(transport.responseText)
e.update(transport.responseText)
}
}); // end new Ajax.Request
//alert($( "csrfmiddlewaretoken" ).getValue());
}
これが私のビューコードです:
if request.is_ajax():
#if request.is_ajax()
cur = connections['data'].cursor()
#auto_type = Auto.objects.filter(type=request.POST.get('type', ''))
abctype = request.POST.get('type', '')
SQL = 'SELECT uuid FROM abc_abc where uid = %s', abctype
cur.execute(SQL)
auto_type =cur.fetchone()
cur = connections['data'].cursor()
SQL = 'SELECT uuid, name FROM abc_abc where parent_id = %s', auto_type
cur.execute(SQL)
colors = cur.fetchall()
return render_to_response('abc/add_abc.html', {
'colors' : colors,
}, context_instance=RequestContext(request))
私が見逃しているものは他にありますか?コードからさらに何かを追加したい場合はお知らせください.....助けてください!!