首页 > 解决方案 > 在加载数据的底部显示“11111111”为什么?

问题描述

我正在使用 PHP 和 Ajax 来获取数据。数据获取成功,但加载数据后加载数据底部显示“1111111”。为什么?

我尝试在不同的网站上找到解决方案,但我不能。请帮我。进阶谢谢。

请看附图

这是我的 PHP 代码(load_more.php):

<?php
    include '../../includes/session.php';
    $conn = $pdo->open();
    $id= $_POST['last_product_id'];
    $output = '';
        $stmt = $conn->prepare("SELECT *, COUNT(*) AS numrows FROM products WHERE id < :id ORDER BY id DESC");
        $stmt->execute(['id'=>$id]);
        $row = $stmt->fetch();
        $totalRowCount = $row['numrows'];
        $showLimit = 6;
        try {
            $stmt = $conn->prepare("SELECT * FROM products WHERE id < :id ORDER BY id DESC LIMIT $showLimit");
            $stmt->execute(['id'=>$id]);
            foreach($stmt as $row){
                $product_id = $row['id'];
                    if (!empty($row['old_price'])){
                        $cart_wish_btn = '
                            <small> <del class="taka_sign_sm text-secondary">'.number_format($row['old_price'], 0).'
                            </del> <span class="ml-2 badge border border-success rounded text-success badge-sm">'.number_format($current_price,0).'% OFF</span></small>';
                        }
                $current_price = 100 -(($row['price'] / $row['old_price']) * 100) ;
                $image = (!empty($row['photo'])) ? '../../images/products/'.$row['photo'] : '../../images/noimage.jpg';
                
                
                $output .= ''.include ('../product/item_view_5.php').'';
                
                
            }
                 if($totalRowCount > $showLimit){ 
                     $output .= '  
                        <div class="show_more_main" id="show_more_main'.$product_id.'">
                            <div id="'.$product_id.'" class="show_more"></div>
                            <div class="loding" style="display: none;"><div class="spinner-border spinner-border-sm text-primary"></div></div>
                        </div>
                    ';
                 }
        }
        catch(PDOException $e){
            $output .= $e->getMessage();
        }

    $pdo->close();
    echo $output;
?>

这是我的 AJax:

$(document).ready(function() {
        //$(document).on('click', '.show_more', function() {
            $(window).scroll(function(){
                var ID = $('.show_more').attr('id');
                if(($(window).scrollTop() == $(document).height() - $(window).height()) && (ID != 0)){
                    $('.show_more').hide();
                    $('.loding').show();
                    $.ajax({
                        type: 'POST',
                        url: "../product/load_more.php",
                        data: 'last_product_id=' + ID,
                        success: function(html) {
                            $('#show_more_main' + ID).remove();
                            $('.load_data_table').append(html);
                        }
                    })
                }
            })
        });

这是我的 HTML:

<div class="row row-cols-2 row-cols-sm-4 row-cols-md-6 px-2 load_data_table"></div>
<div class="show_more_main" id="show_more_main<?php echo $product_id; ?>">
<div id="<?php echo $product_id; ?>" class="show_more"></div>
<div class="loding" style="display: none;"><div class="spinner-border spinner-border-sm text-primary">
</div>
</div>
</div>

标签: phpjquerysqlajax

解决方案


include返回1您分配给$output. 您可能想要缓冲并获取包含文件的输出:

ob_start();
include('../product/item_view_5.php');
$output .= ob_get_clean();

如果您经常这样做,那么使用上面的代码构建一个函数:

function get_template($file) {
    ob_start();
    include($file);
    return ob_get_clean();
}

并这样使用它:

$output .= get_template('../product/item_view_5.php');

推荐阅读