我有3个任务:
1)当用户按下键盘上的输入按钮或点击“提交”按钮时,在textarea中提交消息。
2)使用php / mysql将消息保存到数据库中。
3)将其保存到数据库后,需要在网站上显示更新后的消息。
问题是......没有php脚本可以更改“Enter”按钮事件,所以我需要使用javascript,如果我使用javascript,我需要创建一个新页面sendMsgToDB.php来提交数据到数据库由以下javascript / ajax:
组成<script type="text/javascript">
function gg(e) { //sumbit the form when user press Enter button
key = e ? e.which : window.event.keyCode;
if(key==13) {
$.ajax({
type: "POST",
url: "sendMsgToDB.php?msgid=" + msgid,
data: dataString2,
success: function() {
$('textarea.resposting').val('');
}
});
}
}
$(function() {
document.getElementById("resposting").onkeypress = gg;
});
</script>
我使用mysql从数据库中检索10条最新消息,并使用纯php将消息显示在网站上。如果我想在用户通过按键盘上的“Enter”按钮通过textarea提交数据后向网站显示更新的消息,确定我需要在数据完成后调用function Display_New_Msg()
发送到数据库。如果我使用Javascript / ajax汇总数据,如何使用javascript / ajax / jquery确定数据是否完整发送到数据库?
说真的我不喜欢使用javascript / ajax / jquery,但我强制使用它们因为我需要更改“enter”按钮事件,有没有办法通过使用php更改“enter”按钮事件?如何按下“进入”按钮就像单击“提交”按钮提交表单<form name="frmMsg" action="currentPage.php">
,动作将转到currentPage.php,所以页面刷新,所以它会重新执行{ {1}}自动显示新消息,因此不需要确定数据是否完整发送到数据库。
答案 0 :(得分:1)
如果我使用Javascript / ajax汇总数据,如何确定数据是否完整发送到数据库?
这一切都归结为来自处理AJAX请求的资源的响应。在这种情况下,sendMsgToDB.php
。该脚本需要确保它正在执行它需要做的事情并且所有内容都进入数据库(通常缺少错误就足够了),然后相应地发送响应。如果服务器上有错误,请返回HTTP错误代码(例如500服务器错误)以指示此错误。
然后,jQuery .ajax()
调用根据服务器的响应确定要使用的回调函数。您的代码目前处理成功的响应:
success: function() {
$('textarea.resposting').val('');
}
为了处理错误响应,您需要第二次回调error
:
error: function() {
alert('There was an error!');
}
HTTP响应代码正是出于此目的,因此使用这些响应的客户可以轻松确定请求的状态。
编辑:相反(也许更多的是你的问题的精神,如果我现在正在重新解释你),你可以使用jQuery submit()
函数来{{ 3}}按键逻辑中的表单。这样您就不必使用AJAX,只需使用常规表单提交和响应,您可以指出它是您的偏好。像这样:
if(key==13) {
$('#myForm').submit();
}