ホームページ  >  記事  >  バックエンド開発  >  thinkphpのecho returnがJSONデータを返す問題

thinkphpのecho returnがJSONデータを返す問題

WBOY
WBOYオリジナル
2016-08-04 09:19:241770ブラウズ

今日は jquery オートコンプリート プラグインをいじっています
バックグラウンドからドロップダウン データを取得するために ajax を使用しましたが、それはとても面倒でした
まず第一に、thinkphp を使用していることを説明させてください。フレームワーク
まず、json データを返す必要があります
次に、return json_encode($end,JSON_UNESCAPED_UNICODE);return json_encode($end,JSON_UNESCAPED_UNICODE);
结果前端js插件一直报错,大概就是说返回的json数据不合法
然后捣鼓了好长时间我就尝试用 echo json_encode($end,JSON_UNESCAPED_UNICODE);その結果、フロントエンド JS プラグインはエラーを報告し続けました。これはおそらく、返された json データが不正であることがわかりました
そこで、長い間いじくり回した後、 echo json_encode($end ,JSON_UNESCAPED_UNICODE); を使用してみました

結果は OK でした。説明してもらえますか? 内容はまったく同じですが、1 つのエコーと 1 つのリターンはすべて異なります。

返信内容:

今日は jquery オートコンプリート プラグインをいじっています
バックグラウンドからドロップダウン データを取得するために ajax を使用しましたが、それはとても面倒でした
まず第一に、thinkphp を使用していることを説明させてください。フレームワーク
まず、json データを返す必要があります
次に、return json_encode($end,JSON_UNESCAPED_UNICODE);return json_encode($end,JSON_UNESCAPED_UNICODE);
结果前端js插件一直报错,大概就是说返回的json数据不合法
然后捣鼓了好长时间我就尝试用 echo json_encode($end,JSON_UNESCAPED_UNICODE);その結果、フロントエンド JS プラグインはエラーを報告し続けました。これはおそらく、返された json データが不正であることがわかりました
そこで、長い間いじくり回した後、 echo json_encode($end ,JSON_UNESCAPED_UNICODE); を使用してみました

結果は OK でした。説明してもらえますか? 内容はまったく同じですが、1 つのエコーと 1 つのリターンはすべて異なります。

js コールバックには値が必要であり、php は json 文字列を受信する前に出力する必要があります。
これは http プロトコル、リクエストの送信とレスポンスの受信の概念です。応答によって返されるコンテンツには値が存在する必要があります。 Ajaxのみ取得可能です。
PHPがjson文字列をそのまま出力する文はecho、関数はexit()die()です
thinkphpでのコントローラー層の戻りについては。 thinkphp コア コントローラー クラスに戻りました。最後に、コントローラーが何も出力しない場合、応答の内容は空になります。

SF は以前にも同様の質問をしました: エコーとリターンの違いについて
もう一度言わせてください:

return は、結果を PHP プログラムに返します。 return是给PHP程序返回结果的。
echo

echo は Ajax 応答です。

私は本当に酔っています。元の投稿者はフロントエンド js でエラーを見つけました。ajax の戻り値を確認できなかったのでしょうか?何が問題なのかは明らかではないでしょうか?

正しいアプローチは次のとおりですreturn是在function里返回的。
echo リーリー

return は関数内で返されます。

echo がページに出力されます。

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