2014-09-23 2 views
0

Это мой код. Я уже пробовал, flush(); window_location .. но все равно это не удается. Что мне делать? Я также проверял, передается ли значение $ result, и это нормально. Единственная проблема заключается в том, что JavaScript не загружается. У меня есть другие коды с этой структурой кодирования, но отлично работает и показывается JavaScript перед загрузкой.Загрузить JavaScript перед перенаправлением (CodeIgniter)

function accsettings() 
{ 
    $this->load->model('admin_model'); 
    $result = $this->admin_model->accsettings(); 

    if ($result==0) 
    { 
     echo ' 
      <script type="text/javascript"> 
       alert("Congratulations! Your profile has been updated."); 
      </script> 
      '; 
     $res2 = $this->admin_model->accset_audit(); 

    } 
    else if ($result==1) 
    { 
     echo '<script type="text/javascript"> alert("Error! Current password is not correct."); </script>'; 
    } 
    else 
    { 
     echo '<script type="text/javascript"> alert("New password does not match with the confirmation."); </script>'; 
    } 
    redirect('/main/accsettings'); 
} 
+0

Это никогда не будет работать. Сначала вы печатаете какой-то вывод, а затем отправляете пользователя на другую страницу. При возникновении ошибки вы не должны перенаправлять пользователя. – Jerodev

+0

@Jerodev, у меня был этот точный код по другим функциям моей программы, и он сработал. – Retroswald13

ответ

0

Я бы не рекомендовал этот способ показать сообщение оповещения «JavaScript», если вы хотите, чтобы показать сообщение проверки, пожалуйста, установить переменный контроллер и проверьте на виде.

В коде вы используете метод определения местоположения header для перенаправления страницы, которая не отображается в браузере.

Пожалуйста, используйте refresh метод, чтобы показать результат буфера в браузере

redirect('/main/accsettings', 'refresh'); 
//similar to 
header("refresh:0;url=/main/accsettings"); 
+0

Использование заголовка приводит к проблемам с кодом, таким как ошибки 404 и т. Д. – Retroswald13

+0

Вы ** перенаправляете ** то же действие контроллера? – Girish

+0

"Не найдено Запрошенный URL/main/accsettings не найден на этом сервере." Редактировать: main/accsettings - это вид, найденный в main.php, который является контроллером. – Retroswald13

0

Вы должны сделать редирект также внутри JavaScript, если вы хотите, чтобы это было выполнено.

Вот как вы могли бы добиться этого:

<script type="text/javascript"> 
    alert("Error! Current password is not correct."); 
    setTimeout(function() { 
     window.location.href = "http://www.google.nl"; //will redirect to google. 
    }, 2000); //will call the function after 2 secs. 
</script> 
+0

href не будет работать. main - это не папка, а набор настроек - внутри файла main.php. Я использую структуру CodeIgniter, как указано во время. – Retroswald13

+0

Переадресовываете ли вы точно такой же контроллер и функцию? –

+0

Nevermind. Я уже решил это 7 часов назад. – Retroswald13

Смежные вопросы