使用javascript从模板调用函数
Calling a function from a template using javascript
我是Django的新手,有一些我想做的事情,我似乎不明白怎么做。现在我有页面的元素显示/隐藏使用javascript onclick。我所展示的包括一个下拉框。我想做的是调用我编写的python客户端函数,传递选择,从而对数据库进行更改。函数是写的,我有前端工作,但我不明白如何采取提交按钮,让javascript不仅显示/隐藏元素,但最终调用这个函数。
我不希望页面刷新,我的研究到目前为止让我相信我需要使用AJAX和某种POST。我不太确定。我对这种事没有经验。我想知道我是否走对了路,或者在什么地方可以帮助我到达那里。
您是正确的,您将需要使用AJAX。下面是一个简单的例子:
template.html
<button type="button" id>Click Me!</button>
{% block inline_js %}
<script type="text/javascript">
$(document).ready(function () {
$(document).on("click",'#button',
function() {
$.ajax({
type: "POST",
data: { action: "delete"},
success: function(data){}
</script>
您可以将AJAX函数直接放在视图中。如果AJAX调用的'url'参数中没有任何内容,它将调用自己(调用它的视图)。
views.py
def post(self,request, *args, **kwargs):
#Add a AJAX request check. If it is AJAX, redirect to AJAX function
if self.request.is_ajax():
return self.ajax(request)
#===========================================================================
# AJAX
#===========================================================================
def ajax(self, request):
response_dict= {
'success': True,
}
#Your SQL DROP code here...
return HttpResponse(simplejson.dumps(response_dict), mimetype='application/json')
您必须使用JavaScript发出POST请求,并在服务器上接收它。基本思想是:使用XMLHttpRequest或$从客户端发送数据(可能是JSON)。ajax(如果您的项目使用jQuery)。理论上是的,我对Django也不熟悉。但是根据文档Django不能默认处理AJAX,所以它似乎是你需要的:http://www.dajaxproject.com/dajaxice/
相关文章:
- 如何从模块链中调用函数.导出到节点中
- 调用函数内部的函数
- 在javascript中调用c函数
- DropDownListFor赢得't在更改时调用函数
- Javascript页面调用函数
- 在动画结束之前调用函数
- 允许父窗口在其不同域的子iframe上调用函数
- 运行Infinite Scroll后调用函数时出现问题
- JavaScript:在调用函数的文本输入上按enter键
- 使用大括号和不使用bracs调用函数的区别
- javascript在事件上调用函数
- 从index.html调用函数,该函数无限循环
- 从带参数的字符串变量调用函数中的函数
- 为什么 JS 不在滚动时调用函数
- 是否可以在不更改上下文的情况下调用函数.apply
- 如何在ES6类中使用参数调用函数
- AngularJS:调用函数时编号不更新
- JavaScript中的立即调用函数表达式(IIFE)-传递jQuery
- 在JavaScript中调用函数时自定义此选项
- 调用函数中声明的变量