在`data`部分我的`$ .ajax()`调用有什么问题?

时间:2015-10-14 09:40:39

标签: php jquery ajax

首先,我想滚动到页面底部,将从数据库中加载5个新帖子。

我正在做$.ajax()来电;

  • 方法:" POST"
  • url:" gastenboek_load_posts.php"
  • 数据:{'行':行}

我确实在每个地方都放了一个alert()来检查出错的地方,并评论了我认为错误的地方。

我来自data: { 'rows': rows }

如果出现这样的错误,那该怎么办?

TypeError: 'click' called on an object that does not implement interface HTMLElement. http://code.jquery.com/jquery-latest.min.js Line 4

这是整个jQuery代码;

$(window).scroll(function() {
    if ($(window).scrollTop() == $(document).height() - $(window).height())
    {
        var rows = $("#feedback_field").find(".gb_list_item");

        $.ajax({
            method: "POST",
            url: "gastenboek_load_posts.php",
            data: { 'rows': rows}
        }).done(function(data){
            $("#feedback_field").append(data);
        });
    }
});

如果您需要PHP response代码,我认为对此问题并不重要;

<?
include_once 'core/init.php';
?>
<div id="feedback_field">
<ul>
    <?
    $a = 10;

    if (load_next_5_gb_posts($a) == false)
    {
        echo 'Alle gegevens zijn geladen!';
    }
    else
    {
        $posts = load_next_5_gb_posts($a);

        foreach ($posts as $data)
        {
            $a++;
        }
        ?><input type="hidden" id="new_posts" value="<?=$a?>"><?

        foreach ($posts as $posts)
        {
            ?>
            <li class="gb_list_item">
                <div id="poster">
                    <p><?=$posts['naam']?></p>
                    <p><?=$posts['email']?></p>
                    <p>
                        <?
                        $datum = $posts['datum'];
                        $week_days_en = array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday");
                        $week_days_nl = array("Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag", "Zondag");
                        $months_en = array("January", "February", "Mart", "April", "May", "June", "July", "Augustus", "September", "October", "November", "December");
                        $months_nl = array("Januari", "Februari", "Maart", "April", "Meiy", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December");
                        $date = date_create($datum);
                        echo str_replace($week_days_en, $week_days_nl, str_replace($months_en, $months_nl, date_format($date,"l d F Y")));
                        ?>
                    </p>
                </div>
                <div id="msg">
                    <?=nl2br($posts['msg'])?>
                </div>
            </li>
        <?
        }
    }
    ?>
</ul>
</div>

2 个答案:

答案 0 :(得分:1)

我刚刚找到解决方案!!!

jQuery代码中,此行需要.length函数;

发件人

var rows = $("#feedback_field").find(".gb_list_item");

var rows = $("#feedback_field").find(".gb_list_item").length;

什么是非常合乎逻辑的,因为没有这个功能我没有得到li's的数量;)

谢谢你帮帮忙!

答案 1 :(得分:-1)

你在jquery中忘记了.length。 试试这个:  var rows = $("#feedback_field").find(".gb_list_item").length;