2014-09-23 169 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 2014-09-23 09:28:49

+0

@Jerodev,我在我的程序的其他功能上有這個確切的代碼,它工作。 – Retroswald13 2014-09-23 09:31:32

回答

0

,如果你想顯示驗證消息,那麼請設定變量控制器和檢查看法我不會推薦這種方式來顯示「JavaScript的」警報消息。

在您的代碼中,您正在使用header位置方法重定向未在瀏覽器上顯示結果的頁面。

當你想這個要執行請使用refresh方法來顯示緩衝區結果在瀏覽器

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

使用標題會導致代碼錯誤,如404錯誤等。 – Retroswald13 2014-09-23 09:33:07

+0

是你**重定向**相同的控制器操作? – Girish 2014-09-23 09:35:39

+0

「找不到 在此服務器上找不到請求的URL /主/ accsettings。」 編輯:main/accsettings是main.php中的一個視圖,它是一個控制器。 – Retroswald13 2014-09-23 09:37:41

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不是一個文件夾,accsettings是main.php文件中的一個函數。我正在使用CodeIgniter框架。 – Retroswald13 2014-09-23 09:44:29

+0

您是否重定向到完全相同的控制器和功能? – 2014-09-23 11:31:50

+0

沒關係。我已經在7個小時前解決了它。 – Retroswald13 2014-09-24 06:59:42