jQueryでAjax通信を行う方法とは?Ajax通信を正しく使いこなそう!

- SE
- Ajax通信を行う方法を教えてください。
- PM
- jQueryでAjax通信を行う方法を一緒に見ていきましょう。
目次
jQueryでAjax通信を行う方法とは?
今回は、jQueryでAjax通信を行う方法について説明します。
Ajax通信を利用することで、ページ遷移せずにページを読み込む非同期通信を実現できます。
ここでは、サーバにXAMPPを使用します。事前にXAMPPをインストールしておいてください。
jQueryでAjax通信を行う方法に興味のある方はぜひご覧ください。
Ajaxとは
Ajax(Asynchronous JavaScript + XML)は、ページ遷移せずにページを読み込める仕組みです。これを非同期通信と言います。
通常のWebページは、ページを更新するには再読み込みします。これを同期通信と言います。
Ajaxを使うと、全体を読み込みなおさなくてもよくなります。
HTMLファイル読み込み
jQueryでAjax通信を利用し、HTMLファイルを読み込む方法を紹介します。
まず、「C:\xampp\htdocs」配下に「ajax」フォルダを作成します。
ajaxフォルダ配下にajax_test1.htmlを作成します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Ajax Sample1</title>
</head>
<body>
<button id="button">送信</button>
<div><br></div>
<div id="result">送信ボタンをクリックしてください。Ajax通信します。</div>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script>
// jQuery
$(function(){
$("#button").click(function(event){
$.ajax({
type: "GET",
url: "ajax_test.html",
dataType : "html"
})
// Ajaxリクエストが成功した場合
.done(function(data){
$("#result").html(data);
})
// Ajaxリクエストが失敗した場合
.fail(function(XMLHttpRequest, textStatus, errorThrown){
alert(errorThrown);
});
});
});
</script>
</body>
</html>
|
読み込み対象のHTML(ajax_test.html)は以下のように記述します。
1
|
<p>Ajax通信に成功しました!</p>
|
次に、XAMPPコントローラからApacheを起動します。
Webブラウザから、以下のURLにアクセスします。
http://localhost/ajax/ajax_test1.html
「送信」ボタンをクリックすると、「Ajax通信に成功しました!」が表示されます。
urlで指定したHTMLを読込み、id=resultの個所に表示しています。
このように、jQueryでAjax通信を利用し、HTMLファイルを読み込むことができます。
PHPへデータを渡す
jQueryでAjax通信を利用し、PHPへデータを渡す方法を紹介します。
ajaxフォルダ配下にajax_test2.htmlを作成します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Ajax Sample2</title>
</head>
<body>
<input type="text" name="name" id="name" size="30" maxlength="20">
<button id="button">送信</button>
<div><br></div>
<div id="result">テキストボックスに値を入力して「送信」ボタンをクリックしてください</div>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script>
// jQuery
$(function(){
$("#button").click(function(event){
$.ajax({
type: "GET",
url: "ajax_test2.php",
data: { val: $('#name').val() },
dataType : "text"
})
// Ajaxリクエストが成功した場合
.done(function(data){
$("#result").text(data);
})
// Ajaxリクエストが失敗した場合
.fail(function(XMLHttpRequest, textStatus, errorThrown){
alert(errorThrown);
});
});
});
</script>
</body>
</html>
|
ajax_test2.phpは以下のように記述します。Ajax通信でPHPにデータを渡し、表示しています。
1
2
3
4
5
6
|
<?php
// valueを取得
$id = filter_input(INPUT_GET, 'val');
// valueを表示
echo $id;
?>
|
JavaScriptファイル読込み
jQueryでAjax通信を利用し、JavaScriptファイル読込む方法を紹介します。
ajaxフォルダ配下にajax_test3.htmlを作成します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Ajax Sample3</title>
</head>
<body>
<div id="jquery-sample">
<button id="button">送信</button>
<div id="result"></div>
</div>
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script>
$(function(){
// jQuery
$("#button").click(function(event){
$.ajax({
type: "GET",
url: "ajax_test3.js",
dataType : "script"
})
// Ajaxリクエストが成功した場合
.done(function(data){
$("#result").text(data);
})
// Ajaxリクエストが失敗した場合
.fail(function(XMLHttpRequest, textStatus, errorThrown){
alert(errorThrown);
});
});
});
</script>
</body>
</html>
|
1
|
jQuery('#result').css('backgroundColor', 'pink');
|
Webブラウザから、以下のURLにアクセスします。
http://localhost/ajax/ajax_test3.html
「送信」ボタンをクリックすると、JavaScriptファイルを読込み、実行します。
このように、jQueryでAjax通信を利用し、JavaScriptファイル読込むことができます。
- SE
- XAMPPをインストールすることでAjax通信できるのですね。
- PM
- Ajaxはページを読みこむ必要がなくなる便利な機能です。ぜひ機能をマスターしましょう。
まとめ
いかがでしたでしょうか。jQueryでAjax通信を行う方法について説明しました。
Ajax通信を利用することで、ページ遷移せずにページを読み込む非同期通信を実現できます。
Ajax通信を利用すれば、HTMLファイルやJavaScriptファイルを読み込んで実行したり、PHPへデータを渡すことができます。
ぜひご自身でソースコードを書いて、理解を深めてください。
Search キーワード検索
Popular 人気の記事
-
【VB.NET入門】DataGridViewの使い方まとめ
公開: 更新:
reccomended おすすめ記事
-
【.NETが統合】.NET 5の概要と今後のリリース予定
公開: 更新:
Categories 連載一覧
Tags タグ一覧
Jobs 新着案件
-
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅) -
遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅) -
病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅) -
開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅) -
債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅)