ホームページ >バックエンド開発 >PHPの問題 >PHPはJSから返された配列をどのように受け取るのでしょうか?

PHPはJSから返された配列をどのように受け取るのでしょうか?

PHPz
PHPzオリジナル
2023-04-20 13:48:15960ブラウズ

Web 開発では、フロントエンド JavaScript とバックエンド PHP はよく一緒に使用されるテクノロジです。フロントエンド スクリプトで処理されたデータをバックエンド PHP プログラムに渡してさらなる処理を行う方法は、非常に一般的です。問題。この記事では、PHPを使ってJavaScriptから渡された配列データを受け取る方法を紹介します。

1. フロントエンド JS コードは配列転送を実装します

JS によって処理された配列をバックエンド PHP プログラムに渡すには、まず配列データを JS の文字列に変換する必要があります。 、次に、HTTP リクエスト中に文字列をパラメータとして PHP に渡すことを開始します。

次は、「data」という名前の配列を宣言し、JSON.stringify() メソッドを使用してそれを文字列に変換する簡単な JS コードの例です。リクエストに応じて、変換された文字列をパラメータとして PHP に渡すことができます。たとえば、jQuery ライブラリの ajax() メソッドを使用して POST リクエストを開始する場合、データを「data」属性値としてメソッドに渡すことができます。

var data = [1,2,3,4,5];
var jsonString = JSON.stringify(data);

ここでは、POST リクエストの URLが "process.php" の場合、データは "data" 属性を通じて PHP プログラムに渡されます。リターンに成功した場合は、コールバック関数に応答情報が出力されます。

2. バックエンド PHP コードは、送信された配列データを解析します

PHP では、JavaScript から渡された配列データを受け取る方法がたくさんあります。一般的に使用される 2 つの方法は次のとおりです。

$_POST スーパー変数を使用してデータを受信する
  1. PHP では、$_POST スーパー変数を使用して送信されたデータを取得できます。 。たとえば、データが JS コードの "data" 属性値として PHP プログラムに渡される場合、PHP コードで次のステートメントを使用してデータを取得できます。 JS の JSON.stringify() メソッドの配列を文字列に変換するため、PHP の json_decode() メソッドを使用して配列に戻す必要もあります。たとえば、次のステートメントを使用して文字列を配列に復元できます。
$.ajax({
  type: "POST",
  url: "process.php",
  data: {data: jsonString},
  success: function(response){
    console.log(response);
  }
});

ここで、2 番目のパラメータを true に設定することは、配列を連想配列に変換することを意味します。

HTTP リクエスト データを直接使用して配列を受信する

    PHP では、入力ストリーム (stdin) を通じて Post リクエストのデータを直接受け取ることができます。たとえば、次のコードを使用して、JavaScript から渡された配列データを取得できます。
  1. $data = $_POST["data"];
  2. ここでは、php://input ストリーム内のデータが file_get_contents() メソッドを通じて読み取られ、データが次のように変換されます。 json_decode() メソッドを使用した配列。同様に、2 番目のパラメーターを true に設定すると、配列が連想配列に変換されます。

3. 完全な PHP コード例

以下は、JavaScript から渡された配列データを受信して​​処理するための完全な PHP コード例です。まず、file_get_contents() メソッドを使用して php://input ストリーム内のデータを読み取り、json_decode() メソッドを使用してデータを配列に変換します。処理後、処理結果をJSプログラムにレスポンスとして返すことができます。

$dataArray = json_decode($data,true);

4. まとめ

Web 開発において、JavaScript と PHP は 2 つの重要なテクノロジです。フロントエンド JavaScript からバックエンド PHP プログラムにデータを渡して処理するには、元の配列を文字列形式に変換し、パラメーターとして PHP プログラムに渡す必要があります。 PHP プログラムは、$_POST スーパー変数および入力ストリームを通じてフロントエンドから配列データを受信し、json_decode() メソッドを使用して文字列を配列に変換し直すことができます。データを処理した後、json_encode()メソッドを使用することで、処理結果をJSON形式のデータとしてフロントエンドプログラムに返すことができます。

以上がPHPはJSから返された配列をどのように受け取るのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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