я хочу обновить flashdata при каждом вызове ajax - PullRequest
0 голосов
/ 14 декабря 2018

В моем веб-приложении я хочу получать сообщение об ошибке при каждом вызове ajax.Я использую CodeIgniter, используя, я предпочел использовать flashdata для этой цели, я узнал, что flashdata не обновляется до обновления

, вот мой код ajax

 $.ajax({
    url: '<?php echo base_url();?>Auth/userlogin',
    type: 'POST',
    data: {
        email: email,
        password:password
    },
    dataType: 'text', 
    success: function(data) {
        var error="<?php echo $this->session->flashdata('signup'); ?>"
        if(data=='no'){
            $('#loginerror').html('<div class="alert alert-danger">'+error+'</div>');
        }else{
            $('#loginerror').html(' ');
            $('#login').hide();  
            location.reload();

        }


    },
    error: function(XMLHttpRequest, textStatus, errorThrown) {
        alert("some error");
    }

}); 

А вот мойКонтроллер Где я устанавливаю Flashdata

$this->form_validation->set_rules('email', 'email', 'trim|required|valid_email');
    $this->form_validation->set_rules('password', 'Password', 'trim|required');
    if ($this->form_validation->run()==FALSE) {
        $this->session->set_flashdata('signup',$this->form_validation->first_error());
        echo 'no';
    } 

1 Ответ

0 голосов
/ 14 декабря 2018

Я не вижу никакой причины использовать флэш-данные в ajax, потому что вы уже можете вернуть любые данные, которые вам нужны в вашем ответе, в вашем примере вы можете просто сделать это:

if ($this->form_validation->run() == FALSE) 
{
    $this->json['signup'] = $this->form_validation->first_error();
    $this->json['status'] = false;
    echo json_encode($this->json);
}
else
{
     $this->json['status'] = true;
    // your code ....
}

и вВаш успех:

dataType: 'JSON',
success: function(data) {
    if(data.status == false) {
        $('#loginerror').html('<div class="alert alert-danger">'+data.signup+'</div>');
    } else {
        $('#loginerror').html(' ');
        $('#login').hide();  
        location.reload();
    }
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...