1

私の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 を使用しようとしていません。

助けてください

4

1 に答える 1

0

以下を試してください(数行を変更してください)。変数「private」は予約語であり、@koala_dev が述べたように、live() は 1.7 以降非推奨です。また、 onComplete: は完全でなければなりません:

$( ".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 );
                            }

                        } );
            }

        } );

これがフィドルの例です

于 2013-09-07T20:22:23.520 に答える