ホームページ >バックエンド開発 >PHPチュートリアル >PHP と Vue を使用してオンラインの従業員勤怠入力インターフェイスを構築する方法

PHP と Vue を使用してオンラインの従業員勤怠入力インターフェイスを構築する方法

WBOY
WBOYオリジナル
2023-09-26 19:25:511320ブラウズ

PHP と Vue を使用してオンラインの従業員勤怠入力インターフェイスを構築する方法

PHP と Vue を使用してオンラインの従業員勤怠入力インターフェイスを構築する方法

現代の企業では、従業員の勤怠管理は管理者が直面し、解決しなければならない問題です。テクノロジーの発展に伴い、従来の紙による出席は徐々に電子出席システムに置き換えられてきました。オンラインの従業員勤怠入力インターフェイスを構築することは、管理者が従業員の勤怠を記録し、統計分析を行うのを容易にする非常に実用的な方法です。この記事では、PHP と Vue を使用してこのようなオンライン入力インターフェイスを構築する方法と、具体的なコード例を紹介します。

1. 事前準備

まず、PHP および Vue オペレーティング環境が正しくインストールされていることを確認します。 PHP はサーバー側のスクリプト言語ですが、Vue はユーザー インターフェイスを構築するためのツールを提供する人気のある JavaScript フレームワークです。

2. データベースの作成

まず、「attendance」という名前のデータベースを作成し、その中に「employees」という名前のテーブルを作成する必要があります。テーブルには、従業員番号、名前などの従業員の基本情報と勤怠データが含まれます。具体的なテーブル構造は次のとおりです:

CREATE TABLE employees (
  id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  emp_id INT(11) UNSIGNED,
  name VARCHAR(50),
  attendance_date DATE,
  time_in TIME,
  time_out TIME
);

3. バックエンド開発

バックエンド ロジックの処理には PHP を使用します。まず、「index.php」という名前のファイルを作成し、次のコードを追加します。

<?php
 
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST");
header("Access-Control-Max-Age: 3600");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");

$host = "localhost";
$db_name = "attendance";
$username = "root";
$password = "";

$conn = new PDO("mysql:host=".$host.";dbname=".$db_name, $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$data = json_decode(file_get_contents("php://input"));

$emp_id = $data->emp_id;
$name = $data->name;
$attendance_date = $data->attendance_date;
$time_in = $data->time_in;
$time_out = $data->time_out;

$query = "INSERT INTO employees (emp_id, name, attendance_date, time_in, time_out) VALUES (:emp_id, :name, :attendance_date, :time_in, :time_out)";
$stmt = $conn->prepare($query);
$stmt->bindParam(":emp_id", $emp_id);
$stmt->bindParam(":name", $name);
$stmt->bindParam(":attendance_date", $attendance_date);
$stmt->bindParam(":time_in", $time_in);
$stmt->bindParam(":time_out", $time_out);

if($stmt->execute()){
    http_response_code(201);
    echo json_encode(array("message" => "Attendance record was created."));
}
else{
    http_response_code(503);
    echo json_encode(array("message" => "Unable to create attendance record."));
}
?>

上記のコードは、まず、クロスドメイン要求を許可するように応答ヘッダーを設定します。次に、データベースに接続し、受信したデータを JSON 形式に解析して、employees テーブルに挿入します。

4. フロントエンド開発

フロントエンド部分では、Vue を使用してユーザー インターフェイスを構築します。 Vue CLI を使用して、プロジェクトをすばやく作成し、axios プラグインをインストールします。ターミナルで次のコマンドを実行できます:

vue create attendance
cd attendance
npm install axios

次に、src/App.vue ファイルを変更し、次のコードを追加する必要があります。 :

<template>
  <div id="app">
    <h1>员工考勤录入</h1>

    <form @submit.prevent="submit">
      <label for="emp_id">员工编号:</label>
      <input type="text" v-model="emp_id"> <br>

      <label for="name">员工姓名:</label>
      <input type="text" v-model="name"> <br>

      <label for="attendance_date">考勤日期:</label>
      <input type="date" v-model="attendance_date"> <br>

      <label for="time_in">签到时间:</label>
      <input type="time" v-model="time_in"> <br>

      <label for="time_out">签退时间:</label>
      <input type="time" v-model="time_out"> <br>

      <button type="submit">提交</button>
    </form>

    <p v-if="message">{{ message }}</p>
  </div>
</template>

<script>
import axios from 'axios'

export default {
  name: 'App',
  data() {
    return {
      emp_id: '',
      name: '',
      attendance_date: '',
      time_in: '',
      time_out: '',
      message: ''
    }
  },
  methods: {
    submit() {
      axios.post('http://localhost/index.php', {
        emp_id: this.emp_id,
        name: this.name,
        attendance_date: this.attendance_date,
        time_in: this.time_in,
        time_out: this.time_out
      })
        .then(response => {
          this.message = response.data.message
        })
        .catch(error => {
          this.message = error.response.data.message
        })
    }
  }
}
</script>

<style>
#app {
  font-family: Arial, Helvetica, sans-serif;
  text-align: center;
  margin-top: 60px;
}
</style>

上記のコードは、従業員番号、名前、出勤日、チェックイン時間、チェックアウト時間などのフィールドを含む単純なフォームを作成します。送信ボタンをクリックすると、axios を介してバックエンドのindex.php ファイルに POST リクエストが送信されます。応答を受信すると、対応するプロンプト情報がインターフェイスに表示されます。

5. 実行とテスト

ターミナルで次のコマンドを実行して、フロントエンド ページを開始します:

npm run serve

同時に、バックエンド ページを配置する必要があります。 -end ファイルindex.php (Apache または Nginx の場合) はサーバーのルート ディレクトリにあります。 Web サーバーと MySQL サーバーが起動していることを確認してください。

http://localhost:8080 にアクセスすると、簡単な出席入力インターフェイスが表示されるはずです。フォームに記入して送信をクリックすると、対応する出席記録がデータベースに保存されます。

概要

この記事では、PHP と Vue を使用してオンラインの従業員勤怠入力インターフェイスを構築する方法を紹介します。基本的な従業員情報と勤怠データを含むテーブルを作成し、PHP を使用してバックエンド ロジックを処理し、Vue を使用してユーザー インターフェイスを構築しました。このインターフェイスを通じて、管理者は従業員の勤怠記録を簡単に入力できます。この例が、読者が Web 開発に PHP と Vue を使用する方法をよりよく理解するのに役立つことを願っています。

以上がPHP と Vue を使用してオンラインの従業員勤怠入力インターフェイスを構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。