我正在使用Django将一些数据输入我的数据库。输入数据后我想编辑它。现在,我正在尝试的是,用户不应该转到任何其他页面来更改数据。所以我实现了一个javascript方法来编辑前端的文本。
如何反映用户在数据库中所做的更改?
相关代码如下:
<html>
{% csrf_token %}
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<table id="table">
<tr>
<th>Name</th>
<th>Phone Number</th>
</tr>
{% for record in queryset %}
<tr>
<td onClick="clickable(this)"> {{record.first}} </td>
<td onClick="clickable(this)"> {{record.second}}</td>
</tr>
{%endfor%}
</table>
<script>
function clickable(ele)
{
var value = prompt("Enter the details");
if(value)
{
ele.id='edited'
ele.innerHTML = value;
//I want to send the request to my django view to edit the database here
//The data has been updated.
}
答案 0 :(得分:1)
您应该使用正在使用的jQuery向服务器发送Ajax请求。有了Ajax请求请求,您应该发送更新的数据 简单的Ajax请求即可。
$('#click_place').click(function() { // when click is placed
$.ajax({ // create an AJAX call...
data: $(this).serialize(), // get the content here Ex. {'name': 'test', 'phone': '123'}
type: $(this).attr('method'), // GET or POST
url: $(this).attr('action'), // request url
success: function(response) { // on success..
// display your message
}
});
return false;
});
您可以关注How to POST a django form with AJAX & jQuery http://coreymaynard.com/blog/performing-ajax-post-requests-in-django/。
修改: 您可以在任何活动中简单地调用以下功能。
function myajaxhit() {
$.ajax({ // create an AJAX call...
data: $(this).serialize(), // get the content here Ex. {'name': 'test', 'phone': '123'}
type: $(this).attr('method'), // GET or POST
url: $(this).attr('action'), // request url
success: function(response) { // on success..
// display your message
}
});
}
只需在任何地方调用myajaxhit()。请根据您的要求进行更改。