category

category

jquery

2025.7.25

2025.7.28

40

【Ajax】AjaxでPHPから複数のデータを受け取る

Ajaxで、PHPから一つのデータを受け取る場合と、複数のデータを受け取る場合との違いです。

一つのデータを受け取る場合

PHP側

function function_ajax(){
    $id = $_POST['post_id'];//jsから受け取ったデータ

    //処理を記述

    $return = 'jsに渡したい文字列など';
    echo $return;
    die();
}

JS側

$.ajax({
	type: 'POST',
	url: ajaxurl,
	data: {
		'action' : 'function_ajax',
		'post_id' : セレクタ名.text(),
	},
	success: function(data){
		セレクタ名.html(data);
	}
});

※PHPから受け取ったデータを表示しています。(「セレクタ名.html(data)」の箇所)

※ajaxurlは定義済みです。

※「post_id」はPHP側に渡す変数名です。

複数のデータを受け取る場合

PHP側

function function_ajax(){
    $id = $_POST['post_id'];//jsから受け取ったデータ

    //処理を記述

    $data = array();
    $data['html'] = "jsに渡したい文字列など";
    $data['message'] = 'jsに渡したい文字列など';

    header("Content-type: application/json; charset=UTF-8");
    echo json_encode($data);
    die();
}
ポイント

ポイントは以下の2行です。
header("Content-type: application/json; charset=UTF-8");
echo json_encode($data);

Content-TypeがJSONのheaderを付け、エンコードしてjs側に渡します。

JS側

$.ajax({
	type: 'POST',
	url: ajaxurl,
	data: {
		'action' : 'function_ajax',
		'post_id' : セレクタ名.text(),
	},
	success: function(data){
		if(data.html){
			セレクタ名.html(data.html);
		}
		alert(data.message);
	}
});

PHPから受け取ったデータ「data」は「data.〇〇」で取り出します。

上記例では「data.html」に何等かの値が入っていれば表示、「data.message」はアラート表示しています。

1019

コメント

コメントを残す

ニックネームは公開されます

CAPTCHA


閉じる