简体   繁体   English

在生成电子邮件或通过ajax发送后显示消息

[英]showing message after email generation or sending through ajax

 function registration_ajax(){
        $this->load->library('form_validation');
        $this->form_validation->set_rules('email','email','required|is_unique[register.email]');

        if($this->form_validation->run() == FALSE){
            $data = '{"status":"false","message":"Email already exists"}';
        }
        else
        {

            $email=$this->input->post('email');
            $data= array(
                'email'=>$email  
            );

            $last_id = $this->model->registeration($data);            
            if ($last_id>0) {
                $this->send_email($email);
                $data = '{"status":"true","message":"Email Created successfully"}';
            }

        }
        echo $data;
    }

    public function send_email($to='',$username="",$from='khadija@precisetech.com.pk')
        ///function send_mail()
    {

        $this->load->library('encrypt');
        $toEmail = $this->encrypt->encode($to);

        $toEmail = str_replace('/','forwardSlash',$toEmail);
        $toEmail = str_replace('=','equalSign',$toEmail);
        $toEmail = str_replace('+', 'plusSign', $toEmail);

        $this->load->library('email');
        $config['protocol']     = 'smtp';
                $config['smtp_host']    = 'sadasds';//pust mail.com.pk
                $config['smtp_port']    = '25334';
                $config['smtp_user']    = 'example';
                $config['smtp_pass']    = 'example1';   
                $config['charset']      = 'utf-8';
                $config['mailtype']     = 'html';
                $config['validation'] = FALSE; // bool whether to validate email or not          

                $this->email->initialize($config);
                $message = '<h1 align="center">Hellow</h1>';
                $message = '<html><body style="color:#000; font-weight:normal; font-size:13/14px;"><p style="color:#000;">Hi!</p>';
                $message .= '<table rules="all">';

                $message .= "<p>Congratulations! You have almost completed your registration on Electronic Mall.<br><br>Click on link  here to confirm your email address<br> <a href=\"http://10.10.10.44/Freeclassified/index.php/controller/register_second/$toEmail\">10.10.10.44</a><br><br>Thank you for joining us and becoming part of world's largest local classified sites.In our website, you can enjoy simple ad posting, easy searching and endless local listing for products.We appreciate you for choosing us in online market place.<br> Wishing you alot of success on your classified journey.Get started now!<br><br></p>";
                $message .= "<p>Regards,<br>The Electronic Mall Team</p>";

                $message .= "</table>";
                $message .= "</body></html>";
                $this->email->from($from);
                $this->email->to($to);
                $this->email->subject('Confirmation Email');
                $this->email->message($message);
                if(!$this->email->send()){
                    echo $this->email->print_debugger();
                    die();
                }else{

                }


            }


////ajx code
//////////////////


<script>
  $(document).ready(function(){
    $('#registration_form').on('submit',function(e){
      var email = $('#email').val();

      $.ajax({

         url: "<?=base_url('controller/registration_ajax')?>",
         // url: "<?=base_url('controller/register')?>",
        type: "POST",
        datatype: "JSON",
        data: {email: email},
        success: function(res){
          var data = $.parseJSON(res);
          var status = data.status;
          var message = data.message;
          if(status == 'true'){
           /// $('#myModal').modal('hide');
            $('#message_sent').html(message);
          }
          else{
            $('#message').html(message);
          }
        }
      });
      e.preventDefault();
    });
  }); 
</script>

I want that after email is sent successfully then this message should be displayed 我希望在成功发送电子邮件之后,应该显示此消息

$data = '{"status":"true","message":"Email Created successfully"}';

When I commented the mail sending function then it display the successful message, I want that the message should be display after sending email. 当我评论邮件发送功能时,它将显示成功的消息,我希望在发送电子邮件后显示该消息。

have you tried returning a value from your send_email function? 您是否尝试过从send_email函数返回值?

if(!$this->email->send()){

    return 'success';
}else{
   $this->session->set_flashdata('message', 'To complete registration, click the link in email we just send you at khadija@precisetech.com.pk');
   redirect('controller/login_register','refresh');

   die();

} }

then in your : 然后在您的:

if ($last_id>0) {
   $res = $this->send_email($email);
   if($res === 'success'){
      $data = '{"status":"true","message":"Email Created successfully"}';
   }

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM