点击加载帖子 - php

我想通过点击加载帖子,我有两个文件

使用ajax的index.php
handler.php。

我正在学习AJAX。我了解这项技术,因此通过单击按钮应该发生Ajax请求,然后处理程序将数据返回给Ajax请求,然后Ajax查询输出该数据。但是我做不到,为什么呢?如何解决错误?我的错误是帖子未加载。控制台为空。我将回显设置为处理程序的顶部,但是没有起作用。我猜阿贾克斯有问题

使用ajax的index.php

<!DOCTYPE html>
<html>
    <head>
        <link href="style.css" rel="stylesheet">
        <script type="text/javascript" src="jquery-3.3.1.min.js"></script>
    </head>
    <body>
        <main>
            <!-- <article class="news">
                <div class="picture"><img src="1news.jpg" width="300" height="300"></div>
                <div class="aboutpost">
                    <h2 class="aboutpost-title">Пожар в торговом центре в Кемерово</h2>
                    <p class="aboutpost-description">Холдинг, куда входило ЧОП "Зимней вишни", прекратил работу после трагедии</p>
                </div>
            </article> -->
            <?php
                require 'infofordb.php';
                $link = mysqli_connect($host, $user, $password, $database) or die("Ошибка " . mysqli_error($link));
                $query ="SELECT * FROM news ORDER BY id DESC LIMIT 5";
                $result = mysqli_query($link, $query) or die("Ошибка " . mysqli_error($link));
                $articles = array();
                while($row = mysqli_fetch_assoc($result)) {$articles[] = $row;}
                foreach($articles as $article) {echo '
            <article class="news">
                <div class="picture">
                    <img src="/image/'.$article[path].'">
                </div>
                <div class="aboutpost">
                    <h2 class="aboutpost-title">'.$article[title].'</h2>
                    <p class="aboutpost-description">'.$article[description].'</p>
                </div>
            </article>';}
            ?>
            <center><button id="load">Загрузить ещё</button></center>
            <script>
                $(document).ready(function(){
                    var inProgress = false;
                    var start = 5;
                    $('#load').click(function() {
                        $.ajax({
                            url: 'handler.php',
                            method: 'POST',
                            data: {"start" : start},
                            dataType: 'json',
                            beforeSend: function() {inProgress = true;}
                        }).done(function(data){
                            data = jQuery.parseJSON(data);
                            alert('nen');
                            if (data.length > 0) {
                                //надо вывести
                                $.each(data, function(index, data){
                                    $('main').append(
                                        '<article class="news"><div class="picture"><img src="/image/' + data.path +
                                        + '"></div><div class="aboutpost"><h2 class="aboutpost-title">' + data.title + 
                                        + '</h2><p class="aboutpost-description">' + data.description + 
                                        + '</p></div></article>');
                                });
                                inProgress = false;
                                start += 5;
                            }
                        });
                    });
                });
            </script>
        </main>
    </body>
</html>

handler.php

<?php
    include(infofordb.php);
    $start = $_POST['start'];
    $link = mysqli_connect($host, $user, $password, $database) or die("Ошибка " . mysqli_error($link));
    $query ="SELECT * FROM news ORDER BY id DESC LIMIT {$start}, 5";
    $result = mysqli_query($link, $query) or die("Ошибка " . mysqli_error($link));
    $articles = array();
    while($row = mysqli_fetch_assoc($result)) {$articles[] = $row;}
    echo json_encode($articles);
?>

参考方案

dataType: 'json',告诉jQuery解析返回的JSON数据。在您的代码中,调用JSON.parse尝试再次解析它,删除该行(我的意思是data = jQuery.parseJSON(data);)。

如何在提交时关闭fancybox…需要帮助 - php

当用户提交表单时,我真的需要关闭此弹出框(fancybox)...现在,它会在2秒后重定向到相同的表单(signup.php),但我想说的是“谢谢”消息,然后关闭框...<h1>SIGN UP</h1> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.&…

将php变量传递给模式Twitter引导程序不起作用 - php

嗨,我正在将php变量传递给twitter boostrap modal。但单击模式内的链接时,我无法获得正确的ID。请参见下面的代码。首先,我创建了一个foreach函数,其中有数据循环,其次,我创建了一个链接,以显示模式3rd,我在模式内部有动作链接,用户可以在其中更新,删除数据。我已经实现的是,我可以将php的变量传递给模式操作,但是当我尝试传递给其他…

代码未在服务器目录php中创建文件 - php

我正在尝试使用以下代码将新文件写入服务器error_reporting(E_ALL); ini_set('display_errors', 1); if($_SERVER['REQUEST_METHOD'] == "POST") { $html = $_POST['html'];…

CodeIgniter更新查询被执行两次 - php

我正在使用CodeIgniter 2.2。每次访问页面时,我都必须用+1更新数据库。代码可以工作,但是每次都会增加+2。示例:如果是total views=2,则在单击页面后total views应该是3,但是数据库中的值是4。我确定我在控制器中仅调用一次模型add_one_to_view_image。控制者 function view(){ $view_i…

preg_replace排除<a href='''> </a> PHP - php

我正在使用preg_replace来替换带有href标签的文本中的关键字,我的正则表达式工作非常好,现在我的代码是:$newstring2 = preg_replace("/\p{L}*?".preg_quote($match[$i])."\p{L}*/ui", "<a href='"…