Controllers+JS: Change the blog search to a POST request

This commit is contained in:
Riyyi
2022-12-02 11:51:52 +01:00
parent 2ecc79c714
commit 0138a14c29
3 changed files with 16 additions and 17 deletions
+9 -15
View File
@@ -9,27 +9,21 @@ class BlogController extends PageController {
public function indexAction(): void
{
$archived = $this->router->request()->param('archived', 0);
$query = $this->router->request()->param('search', '');
$posts = $this->search($query, $archived);
$search = $this->router->request()->param('search', '');
$posts = $this->search($search, $archived);
$this->defineHelpers();
$this->router->service()->search = $query;
$this->router->service()->posts = $posts;
$this->router->service()->injectView = $this->views . '/partials/blog-posts.php';
parent::view('blog', 'Hello');
// AJAX search request will only render the posts partial
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$this->router->service()->partial($this->views . '/partials/blog-posts.php', ['posts' => $posts]);
return;
}
public function searchAction(): void
{
$archived = $this->router->request()->param('archived', 0);
$query = $this->router->request()->param('query', '');
$posts = $this->search($query, $archived);
$this->defineHelpers();
$this->router->service()->posts = $posts;
$this->router->service()->partial($this->views . '/partials/blog-posts.php', $posts);
$this->router->service()->search = $search;
$this->router->service()->injectView = $this->views . '/partials/blog-posts.php';
parent::view('blog', 'Hello');
}
//-------------------------------------//
+7 -1
View File
@@ -37,7 +37,13 @@ $(document).ready(function() {
var url = $(this).data("url");
var search = $(this).val();
if (search.length == 0 || search.length >= 3) {
fetch(url + '/search?query=' + encodeURIComponent(search))
fetch(url, {
method: 'POST',
body: 'search=' + encodeURIComponent(search),
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
}
})
.then(response => response.text())
.then(data => {
$("#blog-posts").empty().append(data);
-1
View File
@@ -18,7 +18,6 @@ return [
['/robots.txt', 'IndexController', 'robots'],
['/sitemap.xml', 'IndexController', 'sitemap'],
['/blog', 'BlogController'],
['/blog/search', 'BlogController', 'search'],
['/login', 'LoginController', 'login', ['', 'Sign in', '']],
['/reset-password', 'LoginController', 'reset', ['', 'Reset password', '']],
['/logout', 'LoginController', 'logout'],