如何通过电子邮件发送成功消息到codeigniter中查看?

时间:2014-07-01 07:44:31

标签: php forms codeigniter email

我正在使用Codeigniter及其电子邮件和表单验证库来创建联系表单。单击提交按钮后,我想显示“感谢您的消息”,但无论我尝试它什么都不起作用。

这是我的代码: 控制器:

class contact extends MY_Controller {
function  __construct() {
    parent::MY_Controller();       

}

public function index(){        
    if(!isset($data['message'])){
        $data['message']="";   
    }     
    $this->load->view('contact', $data);
}   

public function send_mail(){
$this->load->library('form_validation');
         $this->form_validation->set_rules("full_name", "Name: ", "required|xss_clean");             
         $this->form_validation->set_rules("email", "Email: ", "required|valid_email|xss_clean");
         $this->form_validation->set_rules("message", "Message: ", "required|xss_clean");
         if($this->form_validation->run()==false){
             $this->load->view('contact');
         }
         else{             
         $this->load->library("email");
         $this->email->from(set_value("email"), set_value("full_name"));
         $this->email->to("my.emailaddress@mailserver.com");
         $this->email->subject("request from ...");
         $this->email->message(set_value("message"));
         $this->email->send();
         $data['message']="Thanks for your message!";
         $this->load->view('contact', $data);
         }

    }

}

观点:

$this->load->helper('form');
echo validation_errors();
echo form_open('contact/send_mail');
echo form_label('Name: ', 'full_name');
$data=array(
    "name"=>"full_name",
    "id"=>"full_name",
    "value"=>set_value("full_name")
);
echo form_input($data);
echo form_label('Email: ', 'email');
$data=array(
    "name"=>"email",
    "id"=>"email",
    "value"=>set_value("email")
);
echo form_input($data);
echo form_label('Message: ', 'message');
$data=array(
    "name"=>"message",
    "id"=>"message",
    "value"=>set_value("message")
);
echo form_textarea($data);
echo form_submit("contact_submit", "submit");
echo form_close();

每当我在视图中尝试var_dump $ data时,都没有定义。那么如何正确地重新加载联系人视图并在提交/发送邮件后将“发送邮件”消息传递给视图?

3 个答案:

答案 0 :(得分:1)

//When you send $data from controller like
 $data['message']="Thanks for your message!"; 
 $this->load->view('contact', $data);

//You need to do below to get that values
  echo $message;

答案 1 :(得分:1)

您需要echo $message而不是var_dump($data)

所以您的控制器变为

public function send_mail(){
$data['message']="";
...
if($this->form_validation->run()==false){
         $this->load->view('contact',$data);
    }
else
{             
     $this->load->library("email");
     $this->email->from(set_value("email"), set_value("full_name"));
     $this->email->to("my.emailaddress@mailserver.com");
     $this->email->subject("request from ...");
     $this->email->message(set_value("message"));
     $this->email->send();
     $data['message']="Thanks for your message!";
     $this->load->view('contact', $data);
 }

并在视野中

echo validation_errors();
echo $message;
echo form_open('contact/send_mail');

答案 2 :(得分:-1)

使用session flashdata。

之后

$this->email->send();

把这段代码

$this->session->set_flashdata('message','Thanks for your message!');

并在您的联系人视图中使用以下代码

echo @$this->session->flashdata('message');