19

jQuery Ajax呼び出しのsuccess関数を正しく機能させるのに問題がありました。その理由は、echo$resultを使用する必要があるときにPHP関数がreturn$resultを使用していたためであると指摘されました。

Ajaxが呼び出したPHP関数を「return$result」から「echo$result」に変更すると問題が修正されましたが、なぜですか?PHPスクリプトの観点から2つの違い(returnとecho)についてはたくさんの説明がありますが、その値をAjax呼び出しに送信するときの違いは何ですか?

4

4 に答える 4

25

ええと、ajax呼び出しはサーバーからの応答を読み取り、その応答はまたはなどの読み取り可能なデータのタイプとしてレンダリングする必要がありapplication/jsonますtext/html

echoそのデータを書き込むには、PHPを使用してサーバーからデータを書き込む必要があります。

returnステートメントはデータを書き込まず、サーバーレベルで返すだけです。

于 2012-04-11T13:45:09.890 に答える
9

Ajax呼び出しは、HTTPリクエストの応答を使用します。PHPスクリプトは、リチュアリングではなくエコーによって出力を生成します。

于 2012-04-11T13:44:05.580 に答える
6

Ajax呼び出しは、データを私たちと同じように見て、文字列として読み取ります。基本的には、別のWebページにアクセスして、結果を「受信」します。PHPの「return」はサーバー上でのみ値を返します。実際にデータを出力して、Ajax呼び出しが行われたときに、表示されているページに実際にデータが書き出されるようにする必要があります。

于 2012-04-11T13:48:51.793 に答える
4

このechoコマンドは、データを標準出力に出力します。これは、データを要求したクライアントであるWebブラウザーアプリケーションにあります。CLIでは、これはコンソールにデータを出力します。そして、returnコマンドは値を指定して関数を終了しますが、何も出力しません。

PHP関数間で通信する場合は、を使用する必要がありますreturn。ただし、一部のデータを出力echoする場合は、を使用する必要があります。

于 2012-04-11T13:48:20.057 に答える