検索

フロントエンドとバックエンドの分離の傾向が強まるにつれ、フロントエンドがバックエンドと対話する必要があるケースがますます増えています。この場合、フロントエンドはバックエンドによって処理されたデータを取得できる必要があり、バックエンドは通常、データを配列の形式で返します。したがって、PHP の配列をどのように JS に渡すかが非常に重要な問題になります。

この記事では、読者がフロントエンドおよびバックエンドのデータを操作するときにバックエンドから返されたデータをより簡単に取得して処理できるように、PHP 配列を送信する一般的な方法をいくつか紹介します。具体的な方法は次のとおりです。

方法 1: JSON を使用する

現在、フロントエンドとバックエンドのデータ対話の最も一般的なソリューションは、JSON を使用することです。 JSON (JavaScript Object Notation) は、読み書きが簡単で、マシンによる解析と生成が容易な軽量のデータ交換形式であり、データ交換に非常に適しています。 PHP には、PHP 配列を JSON 形式に変換し、AJAX テクノロジを使用してフロントエンドに転送し、JSON.parse() を使用して JavaScript が直接操作できるオブジェクトに変換できる組み込み関数 json_encode() があります。 。

PHP コードを使用して配列を JSON に変換します:

$myArray = array("name" => "Tom", "age" => "18", "gender" => "male");
$json = json_encode($myArray);

フロントエンドで AJAX を使用して JSON データを取得します:

var request = new XMLHttpRequest();
request.open('GET', 'my_array.php', true);

request.onload = function() {
  if (request.status >= 200 && request.status < 400) {
    var data = JSON.parse(request.responseText);
    console.log(data);
  } else {
    console.log("Error!");
  }
};

request.send();

上記のコードでは、XMLHttpRequest を使用します。オブジェクトを使用してサーバーからデータをリクエストし、JSON.parse() メソッドを使用して取得した JSON 形式の文字列を JavaScript オブジェクトに変換します。

方法 2: Serialize() と unserialize() を使用する

データ送信時にデータ構造を考慮する必要がない場合、serialize() 関数と unserialize() 関数は 1 つになります。悪い選択ではありません。

serialize() 関数は変数を文字列にシリアル化し、unserialize() 関数は文字列を元のデータ型に復元できます。 PHP では、serialize() を使用して配列を文字列にシリアル化し、AJAX を使用してデータを取得し、それを逆シリアル化できます。

PHP コードを使用して配列をシリアル化します:

$myArray = array("name" => "Tom", "age" => "18", "gender" => "male");
$serializedData = serialize($myArray);

フロントエンドで AJAX を使用してシリアル化された文字列を取得します:

var request = new XMLHttpRequest();
request.open('GET', 'my_array.php', true);

request.onload = function() {
  if (request.status >= 200 && request.status < 400) {
    var data = request.responseText;
    console.log(data);
  } else {
    console.log("Error!");
  }
};

request.send();

次に、unserialize() メソッドを使用できます。これは、PHP オブジェクトに逆シリアル化されます。

$unserializedData = unserialize($serializedData);
print_r($unserializedData);

方法 3: HTML5 データ -* 属性を使用する

いくつかの単純なデータを送信するだけでよく、AJAX リクエストを使用する必要がない場合は、次のようになります。 PHP 配列は、HTML5 の data- 属性を介してフロントエンドに渡すことができます。 data- 属性は、フロントエンドでデータ バインディングを実装するためにページ要素のカスタム データを保存するために使用できるカスタム属性です。まず HTML 要素に data-* 属性を定義し、次に PHP でデータを JSON 形式の文字列に変換し、最後に PHP を使用してそれをページに出力します。

PHP コードを使用して配列を JSON に変換し、data-* 属性に出力します。

$myArray = array("name" => "Tom", "age" => "18", "gender" => "male");
$json = json_encode($myArray);

echo '
This is my div
';

次に、JavaScript を通じてこの要素を取得し、data-json 属性を解析して、 JavaScript オブジェクト :

var myDiv = document.getElementById("myDiv");
var jsonData = JSON.parse(myDiv.dataset.json);
console.log(jsonData);

方法 4: AjaxTransport を使用する

フロントエンド データとバックエンド データを操作するとき、バックエンドの処理を容易にするためにいくつかのパラメーターをカスタマイズする必要がある場合があります。この場合、jQuery で AjaxTransport を使用できます。 AjaxTransport を使用すると、AJAX リクエストを送信する前に、リクエスト ヘッダーにカスタム パラメータを追加して PHP 配列のバックエンド処理を容易にするなど、いくつかのカスタム操作を実行できます。

PHP コードを使用して配列を JSON に変換します:

$myArray = array("name" => "Tom", "age" => "18", "gender" => "male");
$json = json_encode($myArray);

ユーザーが AJAX リクエストを送信するとき、この JSON データをリクエスト ヘッダーに追加できます:

$.ajaxTransport("+json", function(options, originalOptions, xhr) {
  xhr.setRequestHeader("X-JSON", json);
});

Inバックエンド PHP では、リクエスト ヘッダーに追加されたカスタム パラメーターに基づいて PHP 配列を取得できます。

$myArray = json_decode($this->request->header('X-JSON'));

要約すると、さまざまな方法を使用して PHP 配列を JavaScript に転送できます。特定の状況に基づいて、最適なオプションを選択してください。全体として、これらの方法を習得すると、開発者はフロントエンドとバックエンドのデータをより柔軟に操作できるようになり、開発効率が向上します。

以上がPHPの配列をJSに渡す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
非ブロッキング操作にPHPで非同期タスクを使用する方法は?非ブロッキング操作にPHPで非同期タスクを使用する方法は?Mar 10, 2025 pm 04:21 PM

この記事では、Webアプリケーションの応答性を高めるために、PHPでの非同期タスクの実行について説明します。 メッセージキュー、非同期フレームワーク(Reactphp、Swoole)、およびバックグラウンドプロセスなどの方法を詳しく説明し、Efficienのベストプラクティスを強調しています

PHPにメッセージキュー(rabbitmq、redis)を実装する方法は?PHPにメッセージキュー(rabbitmq、redis)を実装する方法は?Mar 10, 2025 pm 06:15 PM

この記事では、RabbitMQとRedisを使用してPHPでメッセージキューを実装する詳細を示します。 それは、それらのアーキテクチャ(AMQP対インメモリ)、機能、および信頼性メカニズム(確認、トランザクション、永続性)を比較します。デザインのベストプラクティス、エラー

最新のPHPコーディング基準とベストプラクティスは何ですか?最新のPHPコーディング基準とベストプラクティスは何ですか?Mar 10, 2025 pm 06:16 PM

この記事では、PSRの推奨事項(PSR-1、PSR-2、PSR-4、PSR-12)に焦点を当てた現在のPHPコーディング基準とベストプラクティスを検証します。 一貫したスタイリング、意味のある命名、EFFを通じてコードの読みやすさと保守性を改善することを強調しています

リフレクションを使用してPHPコードを分析および操作する方法は?リフレクションを使用してPHPコードを分析および操作する方法は?Mar 10, 2025 pm 06:12 PM

この記事では、PHPの反射APIについて説明し、クラス、方法、およびプロパティのランタイム検査と操作を可能にします。 一般的なユースケース(ドキュメンテーション生成、ORM、依存関係注入)とパフォーマンスオーバーヘアに対する注意の詳細

PHP拡張機能とPECLを使用するにはどうすればよいですか?PHP拡張機能とPECLを使用するにはどうすればよいですか?Mar 10, 2025 pm 06:12 PM

この記事では、PHP拡張機能のインストールとトラブルシューティングの詳細で、PECLに焦点を当てています。 インストール手順(検索、ダウンロード/コンパイル、サーバーの再起動、再起動)、トラブルシューティングテクニック(ログのチェック、インストールの確認、

PHP 8 JIT(Just-in-Time)コンピレーション:パフォーマンスの向上方法。PHP 8 JIT(Just-in-Time)コンピレーション:パフォーマンスの向上方法。Mar 25, 2025 am 10:37 AM

PHP 8のJITコンピレーションは、頻繁に実行されるコードをマシンコードにコンパイルし、重い計算でアプリケーションに利益をもたらし、実行時間を短縮することにより、パフォーマンスを向上させます。

PHPでメモリ最適化手法を使用する方法は?PHPでメモリ最適化手法を使用する方法は?Mar 10, 2025 pm 04:23 PM

この記事では、PHPメモリの最適化について説明します。 適切なデータ構造を使用し、不必要なオブジェクトの作成を回避し、効率的なアルゴリズムを採用するなどの手法について詳しく説明しています。 一般的なメモリリークソース(例:除去されていない接続、グローバルv

PHPエコシステムとコミュニティを最新の状態に保つにはどうすればよいですか?PHPエコシステムとコミュニティを最新の状態に保つにはどうすればよいですか?Mar 10, 2025 pm 06:16 PM

この記事では、PHPエコシステムに最新の状態を維持するための戦略を探ります。 公式チャンネル、コミュニティフォーラム、会議、オープンソースの貢献を利用することを強調しています。 著者は、新機能と

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン