0
我有這個Django應用程序:阿賈克斯只返回新信息
與一個領域的頂尖發送消息到數據庫的表單的頁面時,它下面的全局消息列表。
<body>
<form id="messageForm" action="" method="post">
{{ form.as_p }}
<input type="submit" id="go" name="go" value="Go!">
</form>
<div id="msg_list">
<ul id="update">
{% for message in messages %}
<li>{{ message }}</li>
{% endfor %}
</ul>
</div>
</body>
當你點擊提交:
<script>
$(document).ready(function() {
$("#messageForm").submit(function(event) {
event.preventDefault();
data = $("#id_text").val()
dataString = "text=" + data
$.ajax({
type: "POST",
url: "/sendmsg/",
data: dataString,
success: function(html) {
$("#update").html(html);
$("ul#update li:first").hide()
$("ul#update li:first").slideToggle("slow");
}
});
return false;
});
});
</script>
每個消息具有文本和時間戳字段(自動添加)。 其實,當你插入一個新的消息,該過程頁面返回到主頁消息的所有名單:
if form.is_valid():
form.save()
messages = Message.objects.all()
render(request, 'message_list.html', {'messages': messages})
這message_list.html
{% for message in messages reversed %}
<li>{{ message }}</li>
{% endfor %}
但是,當你點擊「提交」,其他用戶可能已經發送了其他消息。我只會返回新消息。我的意思是消息的時間戳比我能在列表中看到的最後一條消息的時間戳更新。我希望你能得到我。
我該怎麼做?想法?
不,我想返回一個消息列表比我可以在頁面中的消息列表中看到的最後一個更新。 – 2011-05-05 12:27:48
然後傳入頁面上的最後一條消息,並過濾它的時間戳。 – zeekay 2011-05-05 16:32:10
窗體有兩個字段?短信和?最後一條消息的ID? – 2011-05-05 18:40:06