申し訳ありませんが、これは以前に尋ねられたことがあるかもしれません。しかし、私は数日間グーグルで検索しましたが、まだ問題を解決できません。Google App Engine と Python を使用してチャット システムを開発しています。ユーザーにメッセージを入力して「送信」ボタンをクリックしてもらいたいのですが。このアクションにより、Ajax post 関数「addMsg()」がトリガーされ、メッセージが Chat クラス (URL: 「/chat」) に POST され、メッセージがデータストアに追加されます。メッセージリストを定期的に更新する別の Ajax 関数「updateMsg()」があります。
コードはメッセージの更新には問題なく機能しますが、メッセージを正しく投稿できません。誰でも私を助けることができますか?ありがとう。ここに私のコードがあります:
チャット.html:
<p>
<form method="" action="">
<input type="text" name="message" size="60" /><br />
<input type="button" value="Submit" onclick="addMsg('message')" />
</form>
</p>
<div id="chatcontent"> </div>
<script>
function addMsg(message) {
$.ajax({
type: "POST",
url: "/chat",
data: {'message': message},
cache: false
});
}
</script>
<script>
$(document).ready(function() {
function updateMsg() {
$.ajax({
url: "/message",
cache: false,
success: function(returndata){
$("#chatcontent").html(returndata);
}
});
setTimeout(updateMsg, 4000);
}
updateMsg();
});
</script>
message.html:
{% for chat in chatlist %}
<p>
{{ chat.text }} ({{ chat.user.account }}) {{chat.created|date:"D d M Y" }}
</p>
{% endfor %}
チャット.py:
# Called by URL "/chat"
class Chat(webapp2.RequestHandler):
def post(self):
message = self.request.get('message')
newchat = ChatMessage(user=self.session['userkey'], text=message, created=datetime.datetime.now())
newchat.put()
# Called by URL "/message"
class Message(webapp2.RequestHandler):
def get(self):
que = db.Query(ChatMessage).order('-created')
chatlist = que.fetch(limit=100)
render(self, 'message.html', {'chatlist': chatlist})
# Note: render() is a function to be imported, which is just a normal template rendering function. It works fine and is omitted here.