我正在尝试编写Django应用程序,而我却被困在单击按钮时如何调用视图函数。
在我的模板中,我有一个如下所示的链接按钮,单击该按钮会将您带到另一个网页:
<a target="_blank" href="{{ column_3_item.link_for_item }}">Check It Out</a>
单击按钮时,我还想调用Django视图函数(以及重定向到目标网站)。查看功能使数据库中的值增加,该值存储了单击按钮的次数。
该column_3_item.link_for_item
是到外部网站(如链接 www.google.com
)。现在,单击该按钮时,它将打开一个新窗口,该窗口将您带到google网站。
我想做的就是在单击按钮时也调用Django视图函数,这将更新数据库而不刷新页面。我该如何实现?
这是一种纯JavaScript的简约方法。我使用JQuery,但您可以使用任何库(甚至根本没有库)。
<html>
<head>
<title>An example</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
function call_counter(url, pk) {
window.open(url);
$.get('YOUR_VIEW_HERE/'+pk+'/', function (data) {
alert("counter updated!");
});
}
</script>
</head>
<body>
<button onclick="call_counter('http://www.google.com', 12345);">
I update object 12345
</button>
<button onclick="call_counter('http://www.yahoo.com', 999);">
I update object 999
</button>
</body>
</html>
替代方法
您可以通过以下方式更改链接,而不是放置JavaScript代码:
<a target="_blank"
class="btn btn-info pull-right"
href="{% url YOUR_VIEW column_3_item.pk %}/?next={{column_3_item.link_for_item|urlencode:''}}">
Check It Out
</a>
并在您的views.py
:
def YOUR_VIEW_DEF(request, pk):
YOUR_OBJECT.objects.filter(pk=pk).update(views=F('views')+1)
return HttpResponseRedirect(request.GET.get('next')))
问题内容: 我创建了一个名为functioncalling.php的页面,其中包含两个按钮 Submit 和 Insert 。作为PHP的初学者,我想测试单击按钮时执行的功能。我希望输出出现在同一页面上。因此,我创建了两个功能,每个按钮一个。functioncalling.php的源代码如下: 这里的问题是单击任何按钮后都没有输出。 我到底哪里出问题了? 问题答案: 是的,您在这里需要Ajax。请
我试图从JavaFX WebView中调用JavaScript函数来处理JavaFX按钮单击事件。 我正在使用以下代码,但它不起作用:
我正在使用ASP.NET和JavaScript创建一个计算器。当用户单击按钮时,现在正试图使它对按钮7起作用,它会调用一个javascript函数,以查看用户是否单击了clear按钮、back space按钮,或者他们是否单击了number按钮。如果它是一个数字按钮,则该函数将把数字添加到文本框中。例如,如果用户点击7然后点击8,然后点击*,然后点击1,文本框将显示:78*1。我无法使javasc
问题内容: 在有人对我进行抨击或将其标记下来之前,我已经遍及整个互联网,以查找如何执行此操作(包括关于stackoverflow的相同问题)。我是新手,而且我发现很难学习新概念,所以请对我轻松一点。 我想做的是单击按钮时调用php脚本/函数。如果有帮助,我可以在WAMP中运行它。这是我的代码: the_script.php中包含以下内容: 为什么这不起作用?我听说按钮是客户端等,而PHP是服务器端
编辑:底部的解决方案 这是一个跳棋游戏。单击一个按钮后,它等待单击第二个按钮与之交换。然而,有时你可能不想移动那个按钮,但一旦你点击了它,就没有回头路了,因为我无法禁用它。 在这里的其他帖子中,我看到人们使用 这只是使它在第一次单击后不可见。 这什么都干不了。 这也没什么用。编辑:所有这些方法都用true和false进行了尝试。 私有无效交换(){ 但你也需要 这样它就重新启用了它,或者其他什么,
我已经做了我的代码。但是当用户输入时,它正在调用服务器端的2 button事件。我只想调用一个事件。 我有三个ASP.NET按钮, 注 我已经为btnSaveFile定义了click函数,下面是代码 下面的代码用于调用上面的函数。 键控功能工作正常。但同时,当我按下enter键时,它也在调用服务器端代码。它不应调用。它应该在服务器端调用 怀疑 我总共有3个服务器端按钮,但它只调用了2个为什么?(只