PHP로 자작 API를 만들고 axios로 데이터를 가져와 표시

php에서 자작 API를 만들고 그 데이터를 axios를 사용하여 검색하고 가져온다는 것을 만듭니다.
완성 이미지↓


우선 html입니다.
  <input type="text" class="input">
  <div class="result"></div>

  <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
  <script src="./app.js"></script>

(axios → htps : // 기주 b. 코 m/아오오 s/아오오 s)

입력에 입력된 값에 따라 결과를 표시합니다.

js에서는 입력될 때마다 axios로 통신하는 처리를 합니다.

document.querySelector('.input').addEventListener('keyup', function() {

  // 結果表示の要素を取得
  const result = document.querySelector('.result');

  // 入力が空だったら結果表示を空にして処理を止める
  if(!this.value) return result.textContent = '';

  // パラメータの指定
  let params = new URLSearchParams();
  params.append('input_val', this.value);

  axios.post('./api.php', params).then(response => {
    result.textContent = response.data.text; // 結果の文字列を表示する
    result.style.color = response.data.color; // 結果の色を適用する
  }).catch(error => {
    // エラーを受け取る
    console.log(error);
  });
});

매개 변수 지정 정보 → htps : // 코 m / 타로 c / ms / f22f7d5d6d5443c72a4

통신처의 api.php에서는, 송신되어 온 값에 의해 출력하는 데이터를 결정하는 처리를 하고 있습니다.
<?php
// 検索対象の配列
$data = ['kyuri', 'gobo', 'tomato', 'ninjin', 'toufu'];

if(empty($_POST['input_val'])){
  exit(); // POSTが空だったら終了する
}

// 出力する配列を作る関数
function createResponse($val, $isIn){
  $result = [
    'text' => $isIn ? $val.' あるよ!' : $val.'はないよ...', // 第2引数の$isInがtrueかfalseかで内容を変える
    'color' => $isIn ? 'red' : 'blue' // 第2引数の$isInがtrueかfalseかで赤か青かを決める
  ];
  return $result;
};

// POSTされた入力内容の値を変数に格納
$inputValue = $_POST['input_val'];

// in_arrayで入力内容の値が配列に存在するか調べる
if(in_array($inputValue, $data)){

  // 存在する場合第2引数をtrueにしてcreateResponse関数を呼び出し、出力する
  echo json_encode(createResponse($inputValue, true));
  exit();

}else{

  // 存在しない場合第2引数をfalseにしてcreateResponse関数を呼び出し、出力する
  echo json_encode(createResponse($inputValue, false));
  exit();

}

json_encode도 잊지 마세요!

좋은 웹페이지 즐겨찾기