Codeigniter, обновление страницы Jquery, если пользователь вошел в систему

Я пытался это сделать в течение целого дня, и я не могу понять, как это сделать.

Я пытаюсь сделать следующее:

Если пользователь отправляет форму входа в систему и если результат успешен (это означает, что его учетная запись существует, и он может войти в систему), тогда страница должна перезагрузиться/обновиться после входа пользователя в систему и должна быть перенаправлена ​​на та же страница.

Вот что я сделал до сих пор:

В моем файле custom-functions.js я попытался создать общую функцию для отправки формы AJAX.

function AjaxFormSubmit(data){
  return data.ajaxSubmit({
        success: function(output){
            var result = output.split(":::");

            if(result[0] == "error")
            {
                var msg = result[1];
                ErrorNotification(msg);
                return 2;
            }else
            if(result[0] == "warning")
            {
                var msg = result[1];
                WarningNotification(msg);

            }else
            if(result[0]== "alert")
            {
                var msg = result[1];
                AlertNotification(msg);

            }else
            if(result[0]== "success")
            {
                var msg = result[1];
                SuccessNotification(msg);
                return 1;
            }
        },
        error: function(output){
            var msg = 'Some Database Error Occurred';
            ErrorNotification(msg);
        }
    });
}

Тогда это моя форма входа:

<form action="ManageUsers/login" id="UserLoginForm" method="POST" accept-charset="UTF-8">
    <input id="user_username" placeholder="Username Here" style="margin-bottom: 15px; width:90%;" type="text" name="Username" />
    <input id="user_password" placeholder="Password Here" style="margin-bottom: 15px; width:90%;" type="password" name="Password" />
    <input id="user_remember_me" style="float: left; margin-right: 10px;" type="checkbox" name="RememberMe" value="1" />
    <label class="string optional" for="user_remember_me"> Remember me</label>

    <input class="btn btn-primary" id="UserLoginBtn" style="clear: left; width: 100%; height: 32px; font-size: 13px;" type="button" name="commit" value="Sign In" />
</form>

А вот скрипт в моей форме входа для вызова функции отправки формы.

<script language="JavaScript">
    $(document).ready(function(e){
        $('#UserLoginBtn').click(function(e){
            var UserLoginForm = $('#UserLoginForm');
            var FullURL = '';
            var PathUrl = getAbsolutePath();
            var HashLocation = location.hash;
            var FullURL = PathUrl+HashLocation;
            //window.location.reload(FullURL);
            var result = AjaxFormSubmit(UserLoginForm);
            alert(result.data);
        });
    });

</script>

Форма успешно отправляется, но как я могу перезагрузить страницу, если вызывается функция успеха?

Любая помощь будет оценена.


person Sizzling Code    schedule 10.05.2013    source источник
comment
попробовать заголовок (Расположение: URL); в php window.location = URL; в js   -  person CaffeineShots    schedule 10.05.2013
comment
как я понимаю, ваша форма отправляется в любом случае, потому что вы не препятствуете ее отправке, просто делаете дополнительный вызов ajax при нажатии кнопки, верно?   -  person paulitto    schedule 10.05.2013
comment
Н.Б. в php URL-адрес должен быть абсолютным. в 1_   -  person itachi    schedule 10.05.2013
comment
@kodewrecker Как использовать заголовок или любую функцию php при вызове функции успеха ... Я хочу выполнить что-то при вызове функции успеха, но я не хочу писать этот код в универсальной функции. потому что не каждый раз, когда я хочу обновить страницу ..   -  person Sizzling Code    schedule 10.05.2013
comment
@paulitto Как это поможет мне получить доступ к функции успеха из файла PHP и позволит перезагрузить страницу, если результат верен?   -  person Sizzling Code    schedule 10.05.2013
comment
if(значение из результата переменной, которое приведет к успеху){ window.location.href = 'url'; }else{ оповещение(ошибка!) }   -  person CaffeineShots    schedule 10.05.2013
comment
извините, я пропустил, что вы используете сторонний плагин для вызова ajax. почему вы не можете перезагрузить страницу внутри AjaxFormSubmit, когда результат [0] == успех?   -  person paulitto    schedule 10.05.2013
comment
@paulitto На самом деле я определил функцию AjaxFormSubmit в файле .js для общего использования. Если я помещу туда перезагрузку страницы, то каждый раз, когда эта функция будет вызываться, страница будет перезагружаться, чего я не хочу.   -  person Sizzling Code    schedule 10.05.2013
comment
затем вы можете расширить эту функцию еще одним аргументом, например AjaxFormSubmit (данные, URL-адрес), затем, если этот аргумент определен, установите window.location.href на этот URL-адрес в случае успеха   -  person paulitto    schedule 10.05.2013
comment
@paulitto Да, это хорошая идея, но как узнать, передан ли URL-адрес или нет .. Я имею в виду, мне нужно будет использовать if(url.length>0){}   -  person Sizzling Code    schedule 10.05.2013
comment
вы можете использовать if (typeof url !=="undefined" или if (typeof url ==="string"){}   -  person paulitto    schedule 10.05.2013
comment
@paulitto Большое спасибо, проблема решена с помощью вашего решения .. :)   -  person Sizzling Code    schedule 10.05.2013


Ответы (1)


Вы можете попробовать это:

<script language="JavaScript">
    $(document).ready(function(e){
        $('#UserLoginBtn').click(function(e){
            var UserLoginForm = $('#UserLoginForm');
            var FullURL = '';
            var PathUrl = getAbsolutePath();
            var HashLocation = location.hash;
            var FullURL = PathUrl+HashLocation;
            //window.location.reload(FullURL);
            var result = AjaxFormSubmit(UserLoginForm);
           if(result == 1){
                 window.location.href = FullURL;
               }  


        });
    });
person user1790464    schedule 10.05.2013
comment
не сработает и не работает, потому что alert(result); возвращает [object][object] :( - person Sizzling Code; 10.05.2013