Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果jquery中发生错误,如何在div中显示错误?_Jquery - Fatal编程技术网

如果jquery中发生错误,如何在div中显示错误?

如果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

我的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_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。