Laravel 6.x 비동기 통신(Ajax) [JavaScript] [jQuery] [axios] [Vue.js] 각 기술 방법~ JavaScript 편~
12794 단어 비동기 통신JavaScriptlarvelAjax
제작 환경
Windows 10
Laravel : 6.18.35
Laravel/ui : 1.0
Laravel-mix : 5.0.1
Bootstrap : 4.0.0
axios : 0.19
Vue : 2.5.17
XAMPP
PHP : 7.4.3
Visual Studio Code
개시하다
이 보도는 프로그래밍을 막 시작한 문외한으로 필기를 하는 데 쓰인다.
내용에 오류가 있을 수 있습니다.
지난번 계속해.
관련 보도
Laravel 6.비동기 통신(Ajax) [JavaScript] [jQuery] [axios] [Vue.js] 각 기술 방법~ 사전 준비 편~
Laravel 6.x 비동기 통신(Ajax) [JavaScript] [jQuery] [axios] [Vue.js] 각 기술 방법~ jQuery 편~
Laravel 6.x 비동기 통신(Ajax) [JavaScript] [jQuery] [axios] [Vue.js] 각 기술 방법~ JavaScript× axios편~
Laravel 6.x 비동기 통신(Ajax) [JavaScript] [jQuery] [axios] [Vue.js] 각 기술 방법~ jQuery× axios편~
Laravel 6.비동기 통신(Ajax) [JavaScript] [jQuery] [axios] [Vue.js] 각 기술 방법~Vue.js × axios편~
Laravel 6.x 비동기 통신(Ajax) [JavaScript] [jQuery] [axios] [Vue.js] 각 기술 방법~ JavaScript× FetchAPI 편~
Laravel 6.x 비동기 통신(Ajax) [JavaScript] [jQuery] [axios] [Vue.js] 각 기술 방법~ jQuery× FetchAPI 편~
이번에 만든 거.
비동기 통신(Ajax)을 사용하여 공급업체를 자동으로 입력하는 기능을 실현한다.
다음 생성 기준
이 보도는 프로그래밍을 막 시작한 문외한으로 필기를 하는 데 쓰인다.
내용에 오류가 있을 수 있습니다.
지난번 계속해.
관련 보도
Laravel 6.비동기 통신(Ajax) [JavaScript] [jQuery] [axios] [Vue.js] 각 기술 방법~ 사전 준비 편~
Laravel 6.x 비동기 통신(Ajax) [JavaScript] [jQuery] [axios] [Vue.js] 각 기술 방법~ jQuery 편~
Laravel 6.x 비동기 통신(Ajax) [JavaScript] [jQuery] [axios] [Vue.js] 각 기술 방법~ JavaScript× axios편~
Laravel 6.x 비동기 통신(Ajax) [JavaScript] [jQuery] [axios] [Vue.js] 각 기술 방법~ jQuery× axios편~
Laravel 6.비동기 통신(Ajax) [JavaScript] [jQuery] [axios] [Vue.js] 각 기술 방법~Vue.js × axios편~
Laravel 6.x 비동기 통신(Ajax) [JavaScript] [jQuery] [axios] [Vue.js] 각 기술 방법~ JavaScript× FetchAPI 편~
Laravel 6.x 비동기 통신(Ajax) [JavaScript] [jQuery] [axios] [Vue.js] 각 기술 방법~ jQuery× FetchAPI 편~
이번에 만든 거.
비동기 통신(Ajax)을 사용하여 공급업체를 자동으로 입력하는 기능을 실현한다.
다음 생성 기준
비동기 통신(Ajax)을 사용하여 공급업체를 자동으로 입력하는 기능을 실현한다.
다음 생성 기준
input
를 입력하여 검색합니다.그림 완성
스크립트 만들기 Laravel-mix
내에 새로 만들기resources>js
는 다음과 같다.
test.js// DOM 構築後に実行したい関数の呼び出し
window.onload = function() {
// inputのid="code"(業者コード)の要素を取得し、inputイベントを監視します
// 業者コードに値が入力されたら以下の内容を実行します
document.getElementById('code').addEventListener('input', function() {
// 入力された値を変数traderCodeに代入します
let traderCode = document.getElementById('code').value;
// 入力された値が4桁未満の時は検索させないようにします
if (traderCode.length < 4) {
return;
}
// XMLHttpRequest オブジェクトを作成します
let xhr = new XMLHttpRequest();
// 非同期通信でアクセスするURLを作成しurlに代入します
let url = '/form_search?trader_code=' + traderCode;
// open('アクセスの方法', 'アクセス先')
// アクセス方法は GETやPOSTです
// アクセス先は作成したurlです
xhr.open('GET', url);
// 通信を開始します
xhr.send();
// 通信状態が変化した時に発火するイベントを設定します
xhr.onreadystatechange = function() {
// 通信状態の確認を行い、エラーがなければ後の処理を実行します
if (xhr.readyState === 4 && xhr.status === 200) {
// コントローラから受け取るデータ(検索結果)の文字列を JSON として解析し
// dataに代入します
// responseTextでデータを受け取れます
let data = JSON.parse(xhr.responseText);
// 受け取ったデータ(検索結果)を仕入れ先のvalueに反映します
document.getElementById('supplier').value = data[0].trader_name;
}
}
})
}
readyState 및 status 정보
test.js
통신 상태를 확인할 수 있습니다.readyState
의 값은 다음과 같다.
값
컨디션
컨텐트
0
준비 단계
아직 통신 상태가 아닙니다.
2
통신 시작
서버와 통신을 시작한 상태
3
받는 중
서버에서 데이터를 가져오는 상태
4
통신 완료
데이터 검색 및 통신 종료 상태
확인readyState
을 통해 통신 중 발생한 오류를 처리할 수 있습니다.status
의 주요치는 다음과 같다.
값
컨디션
컨텐트
200
성취
원활한 통신 성공 상태
401
잘못
인증 필요 통신이 불가능한 상태
403
잘못
통신 불가 상태에 대한 액세스 차단
404
잘못
정보가 존재하지 않아 통신할 수 없는 상태
500
잘못
서버 측의 일부 고장으로 인해 통신이 불가능한 상태
503
잘못
서버 부하로 통신할 수 없는 상태
app.js에 등록 status
에서 생성된 Laravel-mix
는 읽을 수 있습니다.test.js
내의 resources>js
를 열고 app.js
의 아래에 다음과 같은 기술을 보충한다.
app.jsrequire('./test');
webpack.mix.js 수정 require('./bootstrap');
를 연 후 다음과 같이 수정합니다.
수정 전
webpack.mix.jsmix.js('resources/js/app.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css');
수정 후
webpack.mix.jsmix.js('resources/js/app.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css')
.version();
이전 캐시를 읽지 않기 위해서 이 수정이 진행 중입니다.
편역하다
터미널을 시작하고 다음 동작을 실행하십시오.
※node.js가 필요합니다.설치하지 않은 사람은 설치하십시오.
node.js
https://nodejs.org/ja/ npm run dev
편집 컨트롤러
마지막으로 작성된 FormControllerphp를 열면 다음과 같은 방법을 보충해 주십시오.
FormController.phppublic function get_trader(Request $request)
{
// リクエストパラメータからtrader_codeを取得し$traderCodeに代入します
// リクエストパラメータはURLで送られてくる値です
// /form_search?trader_code=●● この●●の部分を取得してます
$traderCode = $request->trader_code;
// traderテーブルから、trader_codeが業者コードに入力された値と同じものを抽出し
// $traderTableに代入します
$traderTable = Trader::where('trader_code', '=', $traderCode)->get();
// $traderTableを返します(これでtest.jsのresponseTextにデータが渡されます)
return $traderTable;
}
라우팅 편집 webpack.mix.js
내routes
를 열고 다음과 같은 내용을 보충한다.
web.phpRoute::get('/form_search', 'FormController@get_trader')->name('ajax');
확인
공장 코드를 입력하여 공급업체가 반영되었는지 확인하세요.
업자 코드와 업자 이름이 미리 등록되지 않으면 반영되지 않으니 주의하세요.
이미지 검색
입력한 값이 4자리이면 읽어들이고 반영됩니다.
JavaScript 편은 여기서 끝냅니다.
수고하셨습니다.
Reference
이 문제에 관하여(Laravel 6.x 비동기 통신(Ajax) [JavaScript] [jQuery] [axios] [Vue.js] 각 기술 방법~ JavaScript 편~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Charry/items/f605cbb686e8c0796450
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
// DOM 構築後に実行したい関数の呼び出し
window.onload = function() {
// inputのid="code"(業者コード)の要素を取得し、inputイベントを監視します
// 業者コードに値が入力されたら以下の内容を実行します
document.getElementById('code').addEventListener('input', function() {
// 入力された値を変数traderCodeに代入します
let traderCode = document.getElementById('code').value;
// 入力された値が4桁未満の時は検索させないようにします
if (traderCode.length < 4) {
return;
}
// XMLHttpRequest オブジェクトを作成します
let xhr = new XMLHttpRequest();
// 非同期通信でアクセスするURLを作成しurlに代入します
let url = '/form_search?trader_code=' + traderCode;
// open('アクセスの方法', 'アクセス先')
// アクセス方法は GETやPOSTです
// アクセス先は作成したurlです
xhr.open('GET', url);
// 通信を開始します
xhr.send();
// 通信状態が変化した時に発火するイベントを設定します
xhr.onreadystatechange = function() {
// 通信状態の確認を行い、エラーがなければ後の処理を実行します
if (xhr.readyState === 4 && xhr.status === 200) {
// コントローラから受け取るデータ(検索結果)の文字列を JSON として解析し
// dataに代入します
// responseTextでデータを受け取れます
let data = JSON.parse(xhr.responseText);
// 受け取ったデータ(検索結果)を仕入れ先のvalueに反映します
document.getElementById('supplier').value = data[0].trader_name;
}
}
})
}
status
에서 생성된 Laravel-mix
는 읽을 수 있습니다.test.js
내의 resources>js
를 열고 app.js
의 아래에 다음과 같은 기술을 보충한다.app.js
require('./test');
webpack.mix.js 수정 require('./bootstrap');
를 연 후 다음과 같이 수정합니다.
수정 전
webpack.mix.jsmix.js('resources/js/app.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css');
수정 후
webpack.mix.jsmix.js('resources/js/app.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css')
.version();
이전 캐시를 읽지 않기 위해서 이 수정이 진행 중입니다.
편역하다
터미널을 시작하고 다음 동작을 실행하십시오.
※node.js가 필요합니다.설치하지 않은 사람은 설치하십시오.
node.js
https://nodejs.org/ja/ npm run dev
편집 컨트롤러
마지막으로 작성된 FormControllerphp를 열면 다음과 같은 방법을 보충해 주십시오.
FormController.phppublic function get_trader(Request $request)
{
// リクエストパラメータからtrader_codeを取得し$traderCodeに代入します
// リクエストパラメータはURLで送られてくる値です
// /form_search?trader_code=●● この●●の部分を取得してます
$traderCode = $request->trader_code;
// traderテーブルから、trader_codeが業者コードに入力された値と同じものを抽出し
// $traderTableに代入します
$traderTable = Trader::where('trader_code', '=', $traderCode)->get();
// $traderTableを返します(これでtest.jsのresponseTextにデータが渡されます)
return $traderTable;
}
라우팅 편집 webpack.mix.js
내routes
를 열고 다음과 같은 내용을 보충한다.
web.phpRoute::get('/form_search', 'FormController@get_trader')->name('ajax');
확인
공장 코드를 입력하여 공급업체가 반영되었는지 확인하세요.
업자 코드와 업자 이름이 미리 등록되지 않으면 반영되지 않으니 주의하세요.
이미지 검색
입력한 값이 4자리이면 읽어들이고 반영됩니다.
JavaScript 편은 여기서 끝냅니다.
수고하셨습니다.
Reference
이 문제에 관하여(Laravel 6.x 비동기 통신(Ajax) [JavaScript] [jQuery] [axios] [Vue.js] 각 기술 방법~ JavaScript 편~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Charry/items/f605cbb686e8c0796450
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
mix.js('resources/js/app.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css');
mix.js('resources/js/app.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css')
.version();
터미널을 시작하고 다음 동작을 실행하십시오.
※node.js가 필요합니다.설치하지 않은 사람은 설치하십시오.
node.js
https://nodejs.org/ja/
npm run dev
편집 컨트롤러
마지막으로 작성된 FormControllerphp를 열면 다음과 같은 방법을 보충해 주십시오.
FormController.phppublic function get_trader(Request $request)
{
// リクエストパラメータからtrader_codeを取得し$traderCodeに代入します
// リクエストパラメータはURLで送られてくる値です
// /form_search?trader_code=●● この●●の部分を取得してます
$traderCode = $request->trader_code;
// traderテーブルから、trader_codeが業者コードに入力された値と同じものを抽出し
// $traderTableに代入します
$traderTable = Trader::where('trader_code', '=', $traderCode)->get();
// $traderTableを返します(これでtest.jsのresponseTextにデータが渡されます)
return $traderTable;
}
라우팅 편집 webpack.mix.js
내routes
를 열고 다음과 같은 내용을 보충한다.
web.phpRoute::get('/form_search', 'FormController@get_trader')->name('ajax');
확인
공장 코드를 입력하여 공급업체가 반영되었는지 확인하세요.
업자 코드와 업자 이름이 미리 등록되지 않으면 반영되지 않으니 주의하세요.
이미지 검색
입력한 값이 4자리이면 읽어들이고 반영됩니다.
JavaScript 편은 여기서 끝냅니다.
수고하셨습니다.
Reference
이 문제에 관하여(Laravel 6.x 비동기 통신(Ajax) [JavaScript] [jQuery] [axios] [Vue.js] 각 기술 방법~ JavaScript 편~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Charry/items/f605cbb686e8c0796450
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
public function get_trader(Request $request)
{
// リクエストパラメータからtrader_codeを取得し$traderCodeに代入します
// リクエストパラメータはURLで送られてくる値です
// /form_search?trader_code=●● この●●の部分を取得してます
$traderCode = $request->trader_code;
// traderテーブルから、trader_codeが業者コードに入力された値と同じものを抽出し
// $traderTableに代入します
$traderTable = Trader::where('trader_code', '=', $traderCode)->get();
// $traderTableを返します(これでtest.jsのresponseTextにデータが渡されます)
return $traderTable;
}
webpack.mix.js
내routes
를 열고 다음과 같은 내용을 보충한다.web.php
Route::get('/form_search', 'FormController@get_trader')->name('ajax');
확인
공장 코드를 입력하여 공급업체가 반영되었는지 확인하세요.
업자 코드와 업자 이름이 미리 등록되지 않으면 반영되지 않으니 주의하세요.
이미지 검색
입력한 값이 4자리이면 읽어들이고 반영됩니다.
JavaScript 편은 여기서 끝냅니다.
수고하셨습니다.
Reference
이 문제에 관하여(Laravel 6.x 비동기 통신(Ajax) [JavaScript] [jQuery] [axios] [Vue.js] 각 기술 방법~ JavaScript 편~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Charry/items/f605cbb686e8c0796450
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Laravel 6.x 비동기 통신(Ajax) [JavaScript] [jQuery] [axios] [Vue.js] 각 기술 방법~ JavaScript 편~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Charry/items/f605cbb686e8c0796450텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)