求人リストページ
24226 ワード
コンテンツの作成
求人リストページを作成させてください.
プロジェクト名はcareers_list
です.
publishingオリジナルは、SK採用をインポートして修正されました.もし問題があったら、私に教えてください.交換します.
作成するページのプレビュー
企画意図
D-{날짜}
として残り数日を表示します.データせっけい
データベースに格納する構造を決定します.
必要なアイテムを抽出
子会社カタログ
採用タイプ
求人情報
データベーステーブルの作成
データベース・テーブルを作成します.
子会社カタログ
CREATE TABLE `career_list_company` (
`id` INT NOT NULL AUTO_INCREMENT ,
company_name VARCHAR(255) NULL ,
logo VARCHAR(255) NULL ,
`insert_date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
PRIMARY KEY (`id`)
) ENGINE = InnoDB;
子会社の名前とロゴが必要です.採用タイプ
CREATE TABLE `career_list_career_type` (
`id` INT NOT NULL AUTO_INCREMENT ,
career_type_name VARCHAR(255) NULL ,
`insert_date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
PRIMARY KEY (`id`)
) ENGINE = InnoDB;
採用タイプの名前さえあればいいです.求人情報
CREATE TABLE `career_list_career` (
`id` INT NOT NULL AUTO_INCREMENT ,
career_list_company_id INT NULL ,
career_list_career_type_id INT NULL ,
title VARCHAR(255) NULL ,
start_date VARCHAR(255) NULL ,
end_date VARCHAR(255) NULL ,
is_always VARCHAR(255) NULL ,
dept_name VARCHAR(255) NULL ,
`insert_date` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ,
PRIMARY KEY (`id`)
) ENGINE = InnoDB;
career_list_career
表にはcareer_list_company
とcareer_list_career_type
があります.公告タイトル、開始日、終了日、通常、役職名を記録します.
サンプルデータの入力
子会社リストのサンプルデータの入力
INSERT INTO `career_list_company` (`id`, `company_name`, `logo`, `insert_date`) VALUES
(1, '케미칼', 'https://www.skcareers.com/Resources/Images/logo/grey-logo-skchemicals.png', '2021-11-01 13:02:15'),
(2, '오앤에스', 'https://www.skcareers.com/Resources/Images/logo/grey-logo-ons.png', '2021-11-01 13:02:39'),
(3, '인천석유화학', 'https://www.skcareers.com/Resources/Images/logo/grey-logo-incheonpetrochem.png', '2021-11-01 13:02:55'),
(4, '브로드밴드', 'https://www.skcareers.com/Resources/Images/logo/grey-logo-skbroadband.png', '2021-11-01 13:03:13'),
(5, '에코플랜트', 'https://www.skcareers.com/Resources/Images/logo/grey-logo-skec.png', '2021-11-01 13:03:36'),
(6, '티맵', 'https://www.skcareers.com/Resources/Images/logo/grey-logo-sk-ver2.png', '2021-11-01 13:42:02');
採用タイプサンプルデータの入力
INSERT INTO `career_list_career_type` (`id`, `career_type_name`, `insert_date`) VALUES
(1, '신입', '2021-11-01 13:03:53'),
(2, '경력', '2021-11-01 13:03:57'),
(3, '인턴', '2021-11-01 13:04:07'),
(4, '해외', '2021-11-01 13:04:12'),
(5, '무관', '2021-11-01 13:12:18');
採用情報サンプルデータの入力
INSERT INTO `career_list_career` (`id`, `career_list_company_id`, `career_list_career_type_id`, `title`, `start_date`, `end_date`, `is_always`, `dept_name`, `insert_date`) VALUES
(1, 1, 1, 'Copolyester 국내 영업/마케팅 신입 채용', '2021-10-01', '2021-11-01', NULL, '영업 / 마케팅', '2021-11-01 13:04:38'),
(2, 1, 2, 'Copolyester 국내 영업/마케팅 경력 채용', '2021-10-01', '2021-11-01', NULL, '영업 / 마케팅', '2021-11-01 13:04:38'),
(3, 2, 3, '2021년 하반기 신입구성원 채용', '2021-10-01', '2021-11-02', NULL, NULL, '2021-11-01 13:04:38'),
(4, 3, 2, '생산기술 엔지니어 경력사원 채용', '2021-10-01', '2021-11-03', NULL, '생산기술', '2021-11-01 13:04:38'),
(5, 3, 2, '생산관리 엔지니어 경력사원 채용', '2021-10-01', '2021-11-03', NULL, '생산관리', '2021-11-01 13:04:38'),
(6, 4, 5, '계약직 구성원 모집 (영상편집, Biz정산)', '2021-10-01', '2021-11-01', 'Y', '영상편집 / Biz정산', '2021-11-01 13:04:38'),
(7, 5, 2, '안전보건관리보조 경력직 채용 (계약직)', '2021-10-01', '2021-11-01', NULL, '안전보건관리', '2021-11-01 13:04:38');
プログラミングコード
パラメータが存在するかどうかを確認します。
index.php
$company = isset($_GET['company']) ? $_GET['company'] : "";
$dept = isset($_GET['dept']) ? $_GET['dept'] : "";
$career_type = isset($_GET['career_type']) ? $_GET['career_type'] : "";
必要なパラメータではないため、存在する場合にのみ値を設定します.
会社のリストをインポートします。
index.php
$company_list = ICL::db_select("select * from career_list_company");
採用タイプのリストを取得します。
index.php
$career_type_list = ICL::db_select("select * from career_list_career_type");
検索条件を設定します。
index.php
$where = "";
$where_terms = array();
if ($company != ""){
$where .= "and company.id = ?";
array_push($where_terms, $company);
}
if ($dept != ""){
$where .= "and career.dept_name like ?";
array_push($where_terms, "%" . $dept . "%");
}
if ($career_type != ""){
$where .= "and career_type.id = ?";
array_push($where_terms, $career_type);
}
placeholder
を使用してSQL注入を防止し、placeholder
を使用して$where_terms
アレイを個別に管理します.
リストデータをインポートします。
index.php
$query = "
SELECT
career.id,
career.title,
career.start_date,
career.end_date,
career.is_always,
career.dept_name,
company.company_name,
company.logo,
career_type.career_type_name
FROM
career_list_career career
INNER JOIN
career_list_company company
ON career.career_list_company_id = company.id
INNER JOIN
career_list_career_type career_type
ON career.career_list_career_type_id = career_type.id
where 1 = 1
and career.end_date > NOW()
$where
ORDER BY
career.end_date ASC, company.id asc
";
$data = ICL::db_select($query, $where_terms);
検索パラメータを渡すフォームを設定します。
<form name="searchForm">
... 생략
<button class="form_btn" title="공고 검색하기">
</form>
会社のリストを表示します.<select name="company" title="관계사구분" class="form_el form_select">
<option <?= $company == "" ? 'selected="selected"' : '' ?> value="">회사</option>
<?php foreach($company_list as $row) : ?>
<option <?= $company == $row->id ? 'selected="selected"' : '' ?> value="<?= $row->id ?>"><?= $row->company_name ?></option>
<?php endforeach ?>
</select>
入力した値を比較して、検索ウィンドウを保持します.
タスクを入力できます。
<div class="form_field">
<input name="dept" type="text" class="form_el form_input" placeholder="직무" title="직무 입력" value="<?= $dept ?>" />
</div>
入力した値を再配置して、検索ウィンドウを保持します.
採用タイプのリストを表示します。
<select name="career_type" title="유형구분" class="form_el form_select">
<option <?= $career_type == "" ? 'selected="selected"' : '' ?> value="">영입유형</option>
<?php foreach($career_type_list as $row) : ?>
<option <?= $career_type == $row->id ? 'selected="selected"' : '' ?> value="<?= $row->id ?>"><?= $row->career_type_name ?></option>
<?php endforeach ?>
</select>
入力した値を比較して、検索ウィンドウを保持します.
リストを表示します。
<?php foreach ($data as $row) : ?>
<li>
<a
href="/job?id=<?= $row->id ?>"
title="<?= $row->company_name ?> 영입 공고 보러가기"
class="card_item coming">
<span class='fc_red co'><?= $row->company_name ?></span>
<strong class="txt_elp_multi tit"><?= $row->title ?></strong>
<div class="efw400 date_box">
... 생략
</div>
<img
src="<?= $row-> logo?>"
alt="<?= $row->company_name?> 로고"
class="logo">
</a>
</li>
<?php endforeach ; ?>
リンクをクリックして/job?id={id}
に移動します.
会社名、公告タイトル、会社ロゴが表示されます.
終了日が今日の場合は、「今日終了」とマークします。
<?php if ($row->end_date == date("Y-m-d") && $row->is_always != "Y") : ?>
<span class="label">오늘 마감</span>
<?php endif ?>
通年全天候募集公告の場合は、「通年全天候」と明記してください。
<?php if ($row->is_always == "Y") : ?>
<span class="label">연중 상시</span>
<?php endif ?>
終了日が今日より遅くなると、残り数日のD-{date}が表示されます。
<?php if ($row->end_date > date("Y-m-d")) :
$d_day = date_diff(date_create($row->end_date), date_create(date("Y-m-d")))->format("%a");
?>
<span class="label">D - <?= $d_day ?></span>
<?php endif ?>
<span class="date">~ <?= $row->end_date ?></span>
処理リストが空の場合。
<?php if (count($data) == 0) : ?>
<li class="normal empty"><p class="d_day empty_space" style="font-size:large">현재 진행중인 공고가 없습니다</p></li>
<?php endif ?>
開発者確認
http://localhost:8500/で結果を表示します.
開発サーバの配備
すべてのプロジェクトディレクトリをコピーし、FTPで開発サーバにアップロードします.
企画者の確認を求める
Webエージェントのプランナーに確認を依頼します.
開発依頼を依頼したい場合は、FAQを読み、適切であれば[email protected]に連絡してください.
Reference
この問題について(求人リストページ), 我々は、より多くの情報をここで見つけました
https://velog.io/@instantcoderweb/채용-목록-페이지
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
$company = isset($_GET['company']) ? $_GET['company'] : "";
$dept = isset($_GET['dept']) ? $_GET['dept'] : "";
$career_type = isset($_GET['career_type']) ? $_GET['career_type'] : "";
$company_list = ICL::db_select("select * from career_list_company");
$career_type_list = ICL::db_select("select * from career_list_career_type");
$where = "";
$where_terms = array();
if ($company != ""){
$where .= "and company.id = ?";
array_push($where_terms, $company);
}
if ($dept != ""){
$where .= "and career.dept_name like ?";
array_push($where_terms, "%" . $dept . "%");
}
if ($career_type != ""){
$where .= "and career_type.id = ?";
array_push($where_terms, $career_type);
}
$query = "
SELECT
career.id,
career.title,
career.start_date,
career.end_date,
career.is_always,
career.dept_name,
company.company_name,
company.logo,
career_type.career_type_name
FROM
career_list_career career
INNER JOIN
career_list_company company
ON career.career_list_company_id = company.id
INNER JOIN
career_list_career_type career_type
ON career.career_list_career_type_id = career_type.id
where 1 = 1
and career.end_date > NOW()
$where
ORDER BY
career.end_date ASC, company.id asc
";
$data = ICL::db_select($query, $where_terms);
<form name="searchForm">
... 생략
<button class="form_btn" title="공고 검색하기">
</form>
<select name="company" title="관계사구분" class="form_el form_select">
<option <?= $company == "" ? 'selected="selected"' : '' ?> value="">회사</option>
<?php foreach($company_list as $row) : ?>
<option <?= $company == $row->id ? 'selected="selected"' : '' ?> value="<?= $row->id ?>"><?= $row->company_name ?></option>
<?php endforeach ?>
</select>
<div class="form_field">
<input name="dept" type="text" class="form_el form_input" placeholder="직무" title="직무 입력" value="<?= $dept ?>" />
</div>
<select name="career_type" title="유형구분" class="form_el form_select">
<option <?= $career_type == "" ? 'selected="selected"' : '' ?> value="">영입유형</option>
<?php foreach($career_type_list as $row) : ?>
<option <?= $career_type == $row->id ? 'selected="selected"' : '' ?> value="<?= $row->id ?>"><?= $row->career_type_name ?></option>
<?php endforeach ?>
</select>
<?php foreach ($data as $row) : ?>
<li>
<a
href="/job?id=<?= $row->id ?>"
title="<?= $row->company_name ?> 영입 공고 보러가기"
class="card_item coming">
<span class='fc_red co'><?= $row->company_name ?></span>
<strong class="txt_elp_multi tit"><?= $row->title ?></strong>
<div class="efw400 date_box">
... 생략
</div>
<img
src="<?= $row-> logo?>"
alt="<?= $row->company_name?> 로고"
class="logo">
</a>
</li>
<?php endforeach ; ?>
<?php if ($row->end_date == date("Y-m-d") && $row->is_always != "Y") : ?>
<span class="label">오늘 마감</span>
<?php endif ?>
<?php if ($row->is_always == "Y") : ?>
<span class="label">연중 상시</span>
<?php endif ?>
<?php if ($row->end_date > date("Y-m-d")) :
$d_day = date_diff(date_create($row->end_date), date_create(date("Y-m-d")))->format("%a");
?>
<span class="label">D - <?= $d_day ?></span>
<?php endif ?>
<span class="date">~ <?= $row->end_date ?></span>
<?php if (count($data) == 0) : ?>
<li class="normal empty"><p class="d_day empty_space" style="font-size:large">현재 진행중인 공고가 없습니다</p></li>
<?php endif ?>
http://localhost:8500/で結果を表示します.
開発サーバの配備
すべてのプロジェクトディレクトリをコピーし、FTPで開発サーバにアップロードします.
企画者の確認を求める
Webエージェントのプランナーに確認を依頼します.
開発依頼を依頼したい場合は、FAQを読み、適切であれば[email protected]に連絡してください.
Reference
この問題について(求人リストページ), 我々は、より多くの情報をここで見つけました
https://velog.io/@instantcoderweb/채용-목록-페이지
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Webエージェントのプランナーに確認を依頼します.
開発依頼を依頼したい場合は、FAQを読み、適切であれば[email protected]に連絡してください.
Reference
この問題について(求人リストページ), 我々は、より多くの情報をここで見つけました https://velog.io/@instantcoderweb/채용-목록-페이지テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol