目次
1. 配列を JSON 形式に変換する
2. フロントエンドでJSONデータを取得
3. JSON データを PHP で直接出力
4. インライン スクリプトを使用してデータを渡す
5. 非表示の input タグを使用してデータを渡す
ホームページ バックエンド開発 PHPの問題 PHPで配列をjsに渡す方法

PHPで配列をjsに渡す方法

Apr 25, 2023 am 09:04 AM

Web 開発では、バックエンド (PHP など) からフロントエンド (JavaScript など) にデータを渡す必要があることがよくあります。 AJAX テクノロジーを使用すると、Web ページを更新せずにバックエンド データを非同期に取得できますが、場合によっては、フロントエンドの処理を容易にするために、バックエンドの配列をフロントエンドに直接渡したい場合があります。この記事では、PHP で JavaScript に配列を渡す方法について説明します。

1. 配列を JSON 形式に変換する

配列を JavaScript に渡す前に、配列を JavaScript で認識できるデータ構造に変換する必要があります。ここでは、データ交換用のテキスト形式であり、JavaScript でオブジェクトを表現するための構文である JSON (JavaScript Object Notation) 形式を使用できます。 PHP には、PHP 配列を JSON 形式に変換できる組み込みの json_encode() 関数があります。

サンプルコード:

$data = array('name' => 'John', 'age' => 30, 'city' => 'New York');
$data_json = json_encode($data);
echo $data_json;
ログイン後にコピー

出力結果:

{"name":"John","age":30,"city":"New York"}
ログイン後にコピー

2. フロントエンドでJSONデータを取得

フロントエンドではJSONデータを取得できます。 AJAX リクエストを介して PHP に JSON データを出力します。サンプル コード:

$.ajax({
    type: "POST",  // 或者 GET
    url: "data.php",  // 后端程序地址
    dataType: "json",  // 返回的数据类型
    success: function(data) {  // 成功回调函数
        console.log(data.name);
        console.log(data.age);
        console.log(data.city);
    }
});
ログイン後にコピー

dataType パラメータはリクエストによって返されるデータ型を指定することに注意してください。ここでは json に設定されています。したがって、返された JSON 形式が不正な場合、データは正常に解析されません。

3. JSON データを PHP で直接出力

配列を JSON 形式に変換して PHP で出力するだけでなく、配列を JSON 形式で直接出力することもできます。この方法はより簡潔ですが、対応する応答ヘッダーを PHP ファイルの先頭に追加する必要があります。

サンプル コード:

$data = array('name' => 'John', 'age' => 30, 'city' => 'New York');
header('Content-Type: application/json');  // 响应头,指定返回的数据类型为 JSON
echo json_encode($data);
ログイン後にコピー

フロントエンドでは、解析せずに AJAX 経由で PHP ファイルを直接呼び出すことができます。

4. インライン スクリプトを使用してデータを渡す

PHP ファイルでは、インライン スクリプトを使用してデータを JavaScript に渡すこともできます。この方法は比較的単純ですが、保守が難しいため、お勧めできません。

サンプルコード:

$data = array('name' => 'John', 'age' => 30, 'city' => 'New York');
echo '<script> var data = ' . json_encode($data) . '; </script>';
ログイン後にコピー

上記のコードで配列をJSON形式に変換した後、スクリプトタグに直接埋め込み、変数データを使用してフロントエンドの配列にアクセスします。

5. 非表示の input タグを使用してデータを渡す

フォームの送信時に PHP で配列を送信する必要がある場合は、配列を非表示の input タグに入れることができます。フォームは送信されると、バックエンドにも渡されます。

サンプル コード:

$data = array('name' => 'John', 'age' => 30, 'city' => 'New York');
echo '<form action="process.php" method="post">';
foreach ($data as $key => $value) {
    echo '<input type="hidden" name="data[' . $key . ']" value="' . $value . '">';
}
echo '<button type="submit">提交</button>';
echo '</form>';
ログイン後にコピー

data という名前の配列パラメーターをフォームに追加し、ループを通じて PHP 配列の各要素を非表示の input タグに 1 つずつ追加します。配列全体は、バックエンドの $_POST['data'] を介して取得できます。

上記は、PHP で JavaScript に配列を渡す方法に関するいくつかの方法です。さまざまなシナリオでさまざまな方法を使用でき、実際のアプリケーションの特定のニーズに応じて選択する必要があります。

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPアレイの重複排除のためのベストプラクティスは何ですか PHPアレイの重複排除のためのベストプラクティスは何ですか Mar 03, 2025 pm 04:41 PM

PHPアレイの重複排除のためのベストプラクティスは何ですか

PHPアレイの重複排除は、キー名の一意性を利用できますか? PHPアレイの重複排除は、キー名の一意性を利用できますか? Mar 03, 2025 pm 04:51 PM

PHPアレイの重複排除は、キー名の一意性を利用できますか?

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

最新のPHPコーディング基準とベストプラクティスは何ですか?

PHPアレイの重複排除は、パフォーマンスの損失について考慮する必要がありますか? PHPアレイの重複排除は、パフォーマンスの損失について考慮する必要がありますか? Mar 03, 2025 pm 04:47 PM

PHPアレイの重複排除は、パフォーマンスの損失について考慮する必要がありますか?

PHPアレイの重複排除のための最適化手法は何ですか PHPアレイの重複排除のための最適化手法は何ですか Mar 03, 2025 pm 04:50 PM

PHPアレイの重複排除のための最適化手法は何ですか

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

PHP拡張機能とPECLを使用するにはどうすればよいですか?

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

PHPにメッセージキュー(rabbitmq、redis)を実装する方法は?

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

リフレクションを使用してPHPコードを分析および操作する方法は?

See all articles