如果jquery中发生错误,如何在div中显示错误?
我的PHP代码是这样的如果jquery中发生错误,如何在div中显示错误?,jquery,Jquery,我的PHP代码是这样的 if ($mybb->input['action'] == 'addcomment') { if (!empty($mybb->user['kicked_by'])) { echo 'You do not have permissions to chat.'; exit; } $query = $db->query(" SELECT message FROM ".TABLE
if ($mybb->input['action'] == 'addcomment')
{
if (!empty($mybb->user['kicked_by']))
{
echo 'You do not have permissions to chat.';
exit;
}
$query = $db->query("
SELECT message FROM ".TABLE_PREFIX."chatbox
WHERE `message` = '{$mybb->input['message']}' AND uid='{$mybb->user['uid']}'
");
$check = $db->fetch_field($query, "message");
if ($check)
{
echo 'The same message has been posted previously.';
exit;
}
if ($mybb->input['private'] == "1")
{
$private = '1';
}
else
{
$private = '0';
}
$cuid = intval($mybb->user['uid']);
$message = $db->escape_string($mybb->input['message']);
$insert_array = array(
"uid" => $cuid,
"message" => $message,
"edited" => '',
"approved" => '1',
"private" => intval($private),
"dateline" => TIME_NOW,
"ip" => get_ip()
);
$db->insert_query("chatbox", $insert_array);
}
我在这里使用的jquery是
$(".textbox2").live('keypress', function (e) {
if (e.keyCode == 13 && !e.shiftKey) {
e.preventDefault();
var message=$("#message").val();
if (message == '')
{
alert("Message is missing!!");
return;
}
if ($("#private").is(':checked') ? 1 : 0)
{
var private=$("#private").val();
}
$.ajax({
type:"post",
url:"chat_insert.php",
data:"message="+message+"&private="+private+"&action=addcomment",
success:function(data){
showComment();
document.getElementById('message').value='';
document.getElementById('message').focus();
document.getElementById('private').checked='';
},
onComplete:function(data){
alert("Error: "+data);
}
});
}
});
但我不知道我是如何以及遗漏了什么,这就是为什么在警报中没有输出错误消息的原因,我也没有尝试在jquery中使用div id
请帮助尝试以下操作(更改了几行)。变量“private”是一个保留字,正如@koala_dev提到的,live()从1.7开始就被弃用了。此外,onComplete:应为complete:
$( ".textbox2" ).on( 'keypress', function (e) {
if (e.keyCode == 13 && !e.shiftKey)
{
e.preventDefault();
var message = $( "#message" ).val(),
privateid = $( "#private" );
if (message.trim().length < 1) // trim the message
{
alert( "Message is missing!!" );
return;
}
if (privateid.is( ':checked' ) ? 1 : 0)
{
var privateidVal = privateid.val();
}
$.ajax( {
type : "post",
url : "chat_insert.php",
data : "message=" + message + "&private=" + privateidVal + "&action=addcomment",
success : function (data) {
showComment();
document.getElementById( 'message' ).value = '';
document.getElementById( 'message' ).focus();
document.getElementById( 'private' ).checked = '';
},
complete : function (data) {
alert( "Error: " + data );
}
} );
}
} );
$(.textbox2”).on('keypress',函数(e){
如果(e.keyCode==13&&!e.shiftKey)
{
e、 预防默认值();
var message=$(“#message”).val(),
privateid=$(“#private”);
if(message.trim().length<1)//修剪消息
{
警报(“消息丢失!!”;
返回;
}
如果(privateid.is(':checked')?1:0)
{
var privateidVal=privateid.val();
}
$.ajax({
类型:“post”,
url:“chat_insert.php”,
数据:“message=“+message+”&private=“+privateidVal+”&action=addcomment”,
成功:功能(数据){
showComment();
document.getElementById('message')。值=“”;
document.getElementById('message').focus();
document.getElementById('private')。选中=“”;
},
完成:功能(数据){
警报(“错误:+数据”);
}
} );
}
} );
以下是上的示例您是否检查了浏览器控制台是否有任何错误?另外,我不认为ajax有一个
onComplete
选项,也许你的意思是complete
,最后你使用的是什么jQuery版本live()
自1.7版以来一直被弃用,我尝试将onComplete:更改为error:但没有乐趣。另外,我使用的是1.7.2 jquery版本,您能告诉我我使用的是什么函数而不是live()?它在成功发布评论时显示警报,而不是在失败时。它还在警报弹出框中显示文本“Error:object[object]”。我希望它在PHP文件中的div中显示错误消息。我该怎么做呢?在fiddle中,它返回未知对象,因为我用于测试其他代码,默认的fiddle ajax url。在脚本中,应该返回数据。可能需要将error:function(){}添加到ajax调用中,并定义发生错误时要执行的操作。。将其放置在success:function(data){(…)}方法之后通过将其更改为error:function(){}并将其放置在success:function之后,它不会返回任何内容,也不会返回alert或div。