Codeigniter - Sweetalert 在控制器中不起作用

Codeigniter - Sweetalert didnt work in controller

我尝试在用户登录时身份验证失败时发出 sweetalert,但在页面重新加载时它永远不会出现,不仅仅是 sweetalert,还有带有 HTML 代码的消息。检查我的控制器代码

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Login extends CI_Controller {

        public function __construct()
        {
            parent::__construct();
            $this->load->model('login_model','', TRUE);
        }

    public function index()
    {       

                if(isset($_POST['password']))
                {
                        $this->load->model('login_model');
                        if($this->login_model->login($_POST['username'],($_POST['password'])))
                        {
                        $this->session->set_userdata('username', $_POST['username']);
                        redirect('home');
                        }else
                        {
                                redirect('login', 'refresh');
                                $var = '<div class="alert alert-success"> <i class="ti-user"></i> This is an example top alert. You can edit what u wish.
                                <button type="button" class="close" data-dismiss="alert" aria-label="Close"> <span aria-hidden="true">×</span> </button>
                                </div>';
                                echo $var;
                        }
                }
                $this->load->view('templates/header');
                $this->load->view('login/index');
                $this->load->view('templates/footer');
        }

        public function logout()
        {
            $this->session->sess_destroy();
            redirect('login');
        }

}

我也尝试过 swal("Hello") 这个 SWAL class:

$('#sa-basic').each(function(){
    swal("¡Error!", "Datos de autenticación erróneos, vuelva a intentarlo", "error");
});

嘿亚历山大,你需要闪存数据来触发 swal()。这是我的代码

<?php if ($this->session->flashdata('error')): ?>
<script>
swal({
  title: "Error",
  text: "Your request can not be completed",
  icon: "<?php echo site_url('Your Icon Destination'); ?>",
  button: false,
  timer: 5000,
});
</script>
<?php endif; ?>

这次您可以使用相同的代码来获得成功

<?php if ($this->session->flashdata('success')): ?>
<script>
swal({
  title: "Congratulation",
  text: "Your request has been completed Successfully!",
  icon: "<?php echo site_url('assets/slim/lib/sweetalert/icon/cancel.svg'); ?>",
  button: false,
  timer: 5000,
});
</script>
<?php endif; ?>

从控制器你可以制作像

这样的闪存数据
$this->session->set_flashdata('success','Action Completed');

$this->session->set_flashdata('error','Action Not Completed');

如果对您有帮助请投票