0

我确定问题很简单,我只是无知,无法弄清楚。

我的网站上有一个个人资料提要,它允许用户使用 jquery 的 ajax 功能发布一个立即出现的状态。

当尝试发布 jquery 所说的错误时,新发布行的整个 html 是语法错误。但是,如果我删除所有 html 并且只显示实际帖子的文本而不是 html,它仍然会给我错误。

这是javascript:

    $('body').on('click','.submit_feed',function () {

    var post = $("#feed_content").val();
    var hidden_id = $("#hidden").val();

    $("#loading").fadeIn("slow");

    if( content.length < 4)
    {
        $.ajax({
            url: "http://localhost/matthew/xaos/users/ajax/feed",
            type: "POST",
            data: {
                parent: hidden_id,
                content:post
            },
            cache: false,
            success: function (data) {
                $('#feed_error').html($(data).hide().fadeIn('slow'));
                $("#loading").fadeOut("slow");
            }
        });
        $("#loading").fadeOut("slow");
    }
    else
    {
        $('#feed_error').remove();
        $.ajax({
            url: "http://localhost/matthew/xaos/users/ajax/feed",
            type: "POST",
            data: {
                parent: hidden_id,
                content:post
            },
            cache: false,
            success: function (data) {
                $('#feed').prepend($(data).hide().fadeIn('slow'));
                $("#loading").fadeOut("slow");
                $("input[type='text']").val('');
            }
        });
    }
    return false;
});

正如您所看到的,它请求与 users/ajax/feed 交互,这是将数据插入数据库并返回 html 的原因。

这是我使用的 php:

    $return['user']     = user_lib::find_user($this->user['user_id']);
    $return['content']  = $this->input['content'];

    if( isset( $this->input['content'] )  )
    {
        if( strlen( trim( $this->input['content'] ) ) < 4 )
        {
            print '<h6>Post must be more than 4 characters</h6>';
            exit();
        }
        $previous_feed = $this->db->fetch_row("select feed_id from user_feed order by feed_id desc");
        if( ! $previous_feed )
        {
            $previous_feed['feed_id'] = 0;
        }

        $insert['feed_id']      = $previous_feed['feed_id'] + 1;
        $insert['feed_parent']  = $this->input['parent'];
        $insert['feed_user']    = $this->user['user_id'];
        $insert['feed_date']    = time();
        $insert['feed_content'] = $this->input['content'];

        $return['feed_id'] = $this->db->insert('user_feed', $insert );

        $html = <<<HTML
        <table style="border:solid 1px #d7d7d7;margin-bottom:5px;">
            <tr>
                <td class="row2" style="width:1%;">{$data['avatar']}</td>
                <td class="row1" style="width:100%;" valign="top">
                    <p>{$return['user']}</p>
                    <p>{$return['content']}</p>
                </td>
            </tr>
        </table>
HTML;

        @header( "Content-type: text/html;charset=utf-8" );
        print $html;
        exit();
    }

当我删除所有 html 并执行 print $return['content']; 或打印 $this->input['content'] 浏览器控制台日志中没有发生错误,但它不会向#feed id 返回任何文本。

如果需要任何其他信息,请告诉我。

任何关于正在发生的事情的想法将不胜感激,谢谢!

4

0 回答 0