简体   繁体   中英

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?

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"}';
   }

}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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