1

次のコードを使用して、CodeIgniter にコントローラーがあります。

$this->load->view("first");
echo "LOL";
$this->load->view("second");

しかし奇妙なことに、ページがレンダリングされると、HTML は次のようになります。

LOL
<div id="firstView"></div>
<div id="secondView"></div>

このステートメントの並べ替えの原因が何であるかはわかりません。助言がありますか?私は何かを見落としていたのでしょうか?

4

4 に答える 4

7

コード イグナイターでのビューのレンダリングは最後に行われます。あなたが行くようにそれらをレンダリングしたい場合は、行うことができます

echo $this->load->view("first", array(), true);
echo "LOL";
echo $this->load->view("second", array(), true);
于 2013-07-02T09:03:32.153 に答える
3

それは簡単です:

$this->load->view("...");

ビューはすぐには表示されません。これは後で起こります。これは、MVC フレームワークの利点の 1 つです。

于 2013-07-02T08:58:17.187 に答える
3

あなたがしようとしていることを達成するには、関数 $this->load->view(...) に 3 番目のパラメーターを渡す必要があります。これは、変数でビューを受け取り、すぐに表示しないことを示します。

このような:

echo $this->load->view("first", NULL, TRUE);
echo "LOL";
echo $this->load->view("second", NULL, TRUE);

3 番目のパラメーター TRUE を見てください (2 番目は、渡したいすべての変数です)。ビューの結果をエコーで出力することを忘れないでください。これは、ビューを保存して処理したり、希望する順序で印刷したりする場合に非常に便利です。

于 2013-07-02T09:07:42.143 に答える
1

これを行うためのよりエレガントな方法を次に示します。

$this->load->view("first");
$this->output->append_output("LOL");
$this->load->view("second");

これを使用すると、事前に作成された $this->load->view ステートメントのエコーへの書き換えが削減されます。それが役に立てば幸い。

于 2014-04-03T14:53:33.370 に答える