仅在单击SUBMIT时才需要在HTML上获取数据库对象,而不是在页面加载时。我目前有一个以相同格式运行的AJAX脚本,单击提交后,它将在文本框中输入的文本返回到HTML。我希望保留此功能,并添加数据检索的新功能。以下是我正在使用的一些代码片段:
views.py
@csrf_exempt
def chat(request):
resps = Responses.objects.all()
context = {'resps' : resps}
return render(request, "chat.html", context)
urls.py
path('chat/', views.chat, name='chat'),
chat.html
<form id="testForm" name="test-form" class="test-form" action="" method="POST">{% csrf_token %}
<input id="texting" name="texting" type="text" class="test-text" placeholder="Test here"/>
<div class="footer">
<input type="submit" value="SEND">
</form>
</div>
{% for r in resps %}
<div>
<p>{{r.response}}</p>
</div>
{% endfor %}
................................................
<script type="text/javascript">
$(document).on('submit','#testForm', function(e){
e.preventDefault();
$.ajax({
type : 'POST',
url : '/chat/',
data :{
text : $('#texting').val(),
csrfmiddlewaretoken: $('input[text=csrfmiddlewaretoken]').val()
},
success : function(){
// alert("Done!");
document.getElementById("userSpeaks").innerHTML = document.getElementById('texting').value;
}
});
});
</script>
任何帮助将不胜感激。我只需要一种方法,即可在每次单击提交按钮时打印模型对象,而不是在页面加载时自动打印。预先感谢。
答案 0 :(得分:2)
请换行
csrfmiddlewaretoken: $('input[text=csrfmiddlewaretoken]').val()
到
csrfmiddlewaretoken: $('input[name=csrfmiddlewaretoken]').val()
答案 1 :(得分:0)
因此,如果您希望通过 ajax 发送查询列表,则必须将查询列表作为 json 对象发送
success
而你 success : function(data){
// alert("Done!");
resps = JSON.parse(data.resps);
var htmldata=""
for(var x in resps){
htmldata+="<p>"+resps[x].fields.xyz+"</p>"
}
$("#userSpeaks").html(htmldata);
}
会看起来像这样
std::vector