thinkphp フレームワーク Ajax を学びましょう (今コードを載せるのが面倒だったので、回答者全員にお詫びします)
私のアイデアは次のとおりです: フロント デスクで Ajax をトリガーする -->> コントローラーを入力します -->> ; データベースから取得する Number-->> データをフォアグラウンド処理に直接返す
テンプレートをレンダリングせずにコントローラーから直接データを返すにはどうすればよいですか?
問題は$this->ajaxReturn();であるはずです
私はajaxReturn()を削除し、代わりにvar_dump($data)を使用しました
フロントデスクが受け取ったデータは次のとおりです
問題は最終的に解決されました。その理由は、見つかったものがjson形式ではないためです。ajaxReturn()が送信するものはjson形式ではないため、フロントデスクが受信するのはarray([0]=>array({})です。 ))、そのため $.parseJSON(data) を使用して解析することはできません。
データの解析には $.each(data[0], function(i,n){}) を使用してください
thinkphp フレームワーク Ajax を学びましょう (今コードを載せるのが面倒だったので、回答者全員にお詫びします)
私のアイデアは次のとおりです: フロント デスクで Ajax をトリガーする -->> コントローラーを入力します -->> ; データベースから取得する 数値 -->> 処理のためにデータを直接フォアグラウンドに返す
テンプレートをレンダリングせずにコントローラーから直接データを返すにはどうすればよいですか?
問題は$this->ajaxReturn();であるはずです
私はajaxReturn()を削除し、代わりにvar_dump($data)を使用しました
フロントデスクが受け取ったデータは次のとおりです
問題は最終的に解決されました。その理由は、見つかったものがjson形式ではないためです。ajaxReturn()が送信するものはjson形式ではないため、フロントデスクが受信するのはarray([0]=>array({})です。 ))、そのため $.parseJSON(data) を使用して解析することはできません。
データの解析には $.each(data[0], function(i,n){}) を使用してください
意味がよくわかりません。Ajax はデータを取得するためにバックグラウンドにリクエストし、それをフロントエンドのテンプレート エンジンを通じてフォアグラウンドにレンダリングします。なぜ「テンプレート レンダリングを通じてコントローラーから直接データを返す」ということになるのでしょうか? 、データを返すためにテンプレート エンジンはまだ必要ですか?テンプレート エンジンを使用すると、文字列の結合が回避され、ajax から返されたデータの処理が容易になります。 Ajax リクエスト データはプロジェクトでよく使用されるため、私が使用した方法のように、メソッドを自分でカプセル化することができます:
リーリー使用法:
1. リクエストが成功した:
$this->setResult($data);
$this->succeed(true)
2. リクエストが失敗した:
$this->setResult("Request failed" ) //書く必要はありません
$this->fail(true)
js での ajax リクエスト:
リーリー
$this->ajaxReturn($data);
以前は
$this->assian('data', $data);
$this->display();
今度は
$this->ajaxReturn($data);
悪くないよ!学んだ!