3

HTMLフォームに2つのアクションを持たせることはできないことはわかっていますが、必要なことを達成するためのより良い方法があるかもしれません. ユーザーのメールアドレスを収集し、Constant Contact メーリングリストにサインアップする簡単なフォームがあります。さらに、電子メールは、フォームからの $email 変数を含むお礼メッセージを表示する別のコントローラーに送信されます。これらの両方を別々に達成することはできますが、フォーム情報が thankyou() と Constant Contact サイトに送信されているため、それらを互いに同期させることはできません。このデータを thankyou() コントローラー経由で Constant Contact に送信する方法があると確信していますが、その方法がわかりません。

また、ありがとうページが表示された回数を追跡するために、送信時に別のページを表示する必要があるため、これで ajax を使用することはできません。

4

2 に答える 2

1

flashdataを使用し、電子メール アドレスを flashdata 変数に格納します。

$this->session->set_flashdata('email', $email);

次のリクエストで使用しない場合は、フラッシュデータを「保持」する必要があることに注意してください。そうしないと、フラッシュデータは消えてしまいます。

$this->session->keep_flashdata('email');

次に、$emailビューの変数を$this->session->flashdata('email');

于 2012-12-06T15:06:12.663 に答える
0

それは次のようなものでなければなりません:- ビューでは:

<form action="mycontroller/save">
</form>

私のコントローラーで:

public function save(){
  // Do whatever you have to do
  $this->session->set_flashdata('email',$this->input->post('useremail'));
  redirect('url to thankyou() controller');

}

IN thankyou コントローラ:

public function save(){
  // Do whatever you have to do
  $email = $this->session->flashdata('email');
  $this->load->view('yourview',$email);

}
于 2012-12-06T15:24:41.970 に答える