[모델]
// app/Models/ItemModel.php
namespace App\Models;
use CodeIgniter\Model;
class ItemModel extends Model
{
protected $table = 'items'; // 테이블 이름
protected $primaryKey = 'id';
protected $allowedFields = ['title', 'content']; // 컬럼 설정
// 데이터 가져오기 (limit, offset 사용)
public function getItems($limit, $offset)
{
return $this->orderBy('id', 'DESC')
->findAll($limit, $offset);
}
}
[컨트롤러]
// app/Controllers/ItemController.php
namespace App\Controllers;
use App\Models\ItemModel;
class ItemController extends BaseController
{
public function index()
{
$model = new ItemModel();
$data['items'] = $model->getItems(3, 0); // 처음 3개만 로드
return view('items_view', $data);
}
public function loadMore()
{
$offset = $this->request->getPost('offset'); // AJAX로 받은 offset
$model = new ItemModel();
$items = $model->getItems(3, $offset); // 3개씩 추가로 가져오기
return view('load_more_items', ['items' => $items]);
}
}
[뷰]
// app/Controllers/ItemController.php
namespace App\Controllers;
use App\Models\ItemModel;
class ItemController extends BaseController
{
public function index()
{
$model = new ItemModel();
$data['items'] = $model->getItems(3, 0); // 처음 3개만 로드
return view('items_view', $data);
}
public function loadMore()
{
$offset = $this->request->getPost('offset'); // AJAX로 받은 offset
$model = new ItemModel();
$items = $model->getItems(3, $offset); // 3개씩 추가로 가져오기
return view('load_more_items', ['items' => $items]);
}
}
[추가뷰]
<!-- app/Views/load_more_items.php -->
<?php foreach ($items as $item): ?>
<div class="item">
<h3><?= esc($item['title']) ?></h3>
<p><?= esc($item['content']) ?></p>
</div>
<?php endforeach; ?>
'내 첫사랑! 컴퓨터 프로그래밍 > PHP는 나의 친구' 카테고리의 다른 글
[codeigniter 4] 더보기를 클릭하면, ajax를 통해서 목록 불러오기 (0) | 2025.01.26 |
---|---|
[코드이그나이터4] 페이지네이션, 페이징처리 구현 - 모델에서 구현 (0) | 2024.12.26 |
PHP ajax/jquery로 유효성 검사하기 (0) | 2024.12.23 |
[중요] 코드이그나이터로 DB내용 읽어올때 처리해야 되는 부분 (0) | 2024.12.23 |
[Ajax] 에이젝스로 삭제 기능 구현하기 (0) | 2024.12.19 |