#php #api #pagination
#php #API #разбивка на страницы
Вопрос:
Я использую API CareerJet для создания своего веб-сайта jobsearch, в настоящее время я почти закончил со всем, кроме одного, разбивая на страницы собранные данные, которые я получаю от них, я мог бы решить эту проблему, если бы она была в документации, но, по-видимому, ее нет, и только говорит
# Basic paging code
if( $page > 1 ){
echo "Use $page - 1 to link to previous pagen";
}
echo "You are on page $pagen" ;
if ( $page < $result->pages ){
echo "Use $page 1 to link to next pagen" ;
}
теперь я не знаю, что добавить туда, чтобы заставить его работать, я пытался следовать инструкциям, но он перенаправляет только на первую страницу, это мой первый проект, в котором используются некоторые API и PHP для моего школьного проекта, и я хотел бы знать, как это сделать. Здесь я получаю API и код для своего проекта.
И это мой текущий код:
<?php
session_start();
error_reporting(0);
require_once "Careerjet_API.php";
$cjapi = new Careerjet_API('en_PH');
$api = new Careerjet_API('en_PH') ;
$page = 1 ; # Or from parameters.
$output = '';
$thead = '';
if(isset($_POST['submit'])) {
$searchq = $_POST['key_search'];
$searchw = $_POST['location'];
$result = $api->search(array(
'keywords' => $searchq,
'location' => $searchw,
'page' => $page ,
'affid' => '678bdee048',
'pagesize' => 5,
));
if ( $result->type == 'JOBS' ){
echo "Found ".$result->hits." jobs" ;
echo " on ".$result->pages." pagesn" ;
$jobs = $result->jobs;
if($jobs == false) {
$thead = '<div class="card">
<h1 class="card-body">No results found</h1>
<p class="mb-2">No results found. Please modify your search.</p>
</div>';
} else {
foreach( $jobs as $job ) {
$output .= ' <tbody>
<tr scope="row" align="center">
<td>'.$job->title.'</td>
<td width="150px">'.$job->locations.'</td>
<td align = "center">'.$job->company.'</td>
<td align = "center" width="150px">'.$job->salary.'</td>
<td><small class="d-block" >'.$job->description.'</small></td>
<td width="20px"><a href="'.$job->url.'">APPLY NOW</a></td>
</tr>
</tbody> ';
$thead = '
<div class="table-responsive1">
<table class="table table-striped table-dark table-striped">
<thead>
<tr align = "center">
<th scope="col">Hiring</th>
<th scope="col">Location</th>
<th scope="col">Company</th>
<th scope="col">Salary</th>
<th scope="col">Description</th>
<th scope="col"></th>
</tr>
</thead>
'.$output.'
</table>
</div>
</div>';
}
}
# Basic paging code
if( $page > 1 ){
echo "Use $page - 1 to link to previous pagen";
}
echo "You are on page $pagen" ;
if ( $page < $result->pages ){
echo "Use $page 1 to link to next pagen" ;
}
}
# When location is ambiguous
if ( $result->type == 'LOCATIONS' ){
$locations = $result->solveLocations ;
foreach ( $locations as $loc ){
echo $loc->name."n" ; # For end user display
## Use $loc->location_id when making next search call
## as 'location_id' parameter
}
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JobSite</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="new.css">
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css"/>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg OMhuP IlRH9sENBO0LRn5q 8nbTov4 1p" crossorigin="anonymous"></script>
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" integrity="sha384-PsH8R72JQ3SOdhVi3uxftmaW6Vc51MKb0q5P2rRUpPvrszuE4W1povHYgTpBfshb" crossorigin="anonymous">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js" integrity="sha384-vFJXuSJphROIrBnz7yo7oB41mKfc8JzQZiCq4NCceLEaO4IHwicKwpJf9c9IpFgh" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js" integrity="sha384-alpBpkh1PFOepccYVYDB4do5UnbKysX5WZXm3XxPqe5iKTfUKjNkCk9SaVuEZflJ" crossorigin="anonymous"></script>
<style>
.table td {
text-align: center;
}
@media (min-width: 1200px) {
.container{
max-width: 1500px;
}
}
</style>
</head>
<body class="bg-image" style="background-image: url('bgwallpaper.jpg'); height: 100vh; background-repeat: repeat-y;">
<!-- Header -->
<nav>
<div class="logo"><a href="searchbar.php">JOBsite</a></div>
<label for="btn" class="icon">
<span class="fas fa-bars"></span>
</label>
<input type="checkbox" id="btn">
<ul>
<li><a href="#">About</a></li>
<li>
<a href="#">Services</a>
<ul>
<li><a href="#">Interview tips</a></li>
<li><a href="#">Job Strategy</a></li>
<li><a href="#">Pandemic advice</a></li>
<li><a href="#">Career management</a></li>
</ul>
</li>
<li>
<a href="#">Features</a>
<ul>
<li><a href="#">Resume</a></li>
<li><a href="#">Employer</a></li>
</ul>
</li>
<li>
<a href="#">Contacts</a>
<ul>
<li><a href="#">Inquiry</a></li>
<li><a href="#">DOLE</a></li>
<li><a href="#">JobSITE</a></li>
</ul>
</li>
<li>
<?php if($_SESSION['username'])
echo '<a href="logout.php">Logout</a></li>';
else{
echo '<li><a href="login.php">Login/Register</a></li>'; }
?>
</li>
</ul>
</nav>
<br>
<br>
<div class="container">
<div class="row">
<div class="col-lg-6 offset-lg">
<form action= "searchbar-result.php" method = "POST">
<h3 class="text-center text-light">Find Better. Faster with JobSearch</h3>
<div class="input-group" id="adv-search">
<input type="text" class="form-control form-control-search" style="margin-right:20px;" name="key_search" placeholder="Search for your job." />
<input type="text" class="form-control form-control-search" style="margin-right:5px;" name="location" placeholder="Insert Location" />
<button type="submit" name= "submit" class="btn btn-primary"><span class="fa fa-search" aria-hidden="true"></span></button>
</div>
</div>
</div>
</div>
</form>
<br>
<br>
<div class="container">
<div align ="center">
<?php
print("$thead");
?>
</div>
</div>
</body>
</html>