2016-10-19 149 views
1

我在視圖文件夾中的文件夾中有很多視圖,例如在views/admin文件夾中。重定向到控制器 - Codeigniter

This is a users view in admin folder, so the url is <code>localhost/file-sharing/admin/users</code>

當我的代碼

if (!empty($users->users)): 
    foreach ($users->users as $user) { 
      $link = site_url('ContentController/showActivities/' . $user->id); 
      $what = $user->banned == 0 ? 'b':'u'; 
      $banned_t = $user->banned == 0 ? 'Banned':'Un-banned'; 

      echo '<tr id="user_'.$user->id.'">'; 
      echo '<td><div class="userimg"><img src="' . $user->profile_pic->medium . '"></div></td>'; 
      echo '<td>'.$user->name . '</td>'; 
      echo '<td>'; 
      echo $user->last_login == '' ? 'never' : $user->last_login; 
      echo '</td>'; 
      echo $user->banned == 0 ? '<td><span class="label label-success">Active</span></td>' : '<td><span class="label label-danger">Banned</span></td>'; 
      echo '<td>'.$user->email.'</td>'; 
      echo '<td><div class="btn-group"> 
          <button type="button" onclick="Buckty.user.edit($(this));" data-toggle="modal" data-target="#editUser" data-id="'.$user->id.'" class="btn btn-danger">Edit</button> 
          <button type="button" class="btn btn-danger dropdown-toggle" data-toggle="dropdown" aria-expanded="false"> 
          <span class="caret"></span> 
          <span class="sr-only">Toggle Dropdown</span> 
          </button> 
          <ul class="dropdown-menu" role="menu"> 
          <li><a onclick="javascript:ref('.$user->id.')">Show Activities</a></li> 
          <li><a onclick="Buckty.user.ban($(this));" data-id="'.$user->user_hash.'" data-what="'.$what.'">'.$banned_t.'</a></li> 
          <li><a onclick="Buckty.user.remove($(this));" data-id="'.$user->id.'">Delete</a></li> 
          </ul> 
         </div></td>'; 
      echo '</tr>'; 
    } 
endif; 

這是我想重定向到控制器

<li><a onclick="javascript:ref('.$user->id.')">Show Activities</a></li> 

的Javascript代碼:

function ref(id) { 
    window.open('ContentController/showActivities/'+id, '_blank'); 
} 

但,當我點擊「顯示活動」菜單時,它總是重定向到http://localhost/file-sharing/admin/ContentController/showActivities/1並且它不重定向到ContentController/showActivities控制器。它應該重定向到該控制器,如果URL是http://localhost/file-sharing/ContentController/showActivities/1

有人知道我應該怎麼做在這種情況下?提前致謝。

+0

'ref' where u define?在js函數中使用 – devpro

+0

。 –

+0

'console.log(id)'和檢查ID是否爲空。 –

回答

1

這個平臺Being Owner。讓我告訴你幾件事。由於功能和兼容性的原因,網站地址未由base_url()site_url()定義。

首先,我不建議你不要使用控制器名稱,儘量爲routes.php內的控制器組織和製作路由,但現在讓我們來討論一下你的問題。

site_url()是您目前的網址。但是你可以非常簡單地訪問全部設置。

介紹的全局變量

  • $用戶 ||這包含當前登錄的用戶數據,您可以在視圖內任意位置使用它
  • $ this-> current_user ||這包含與上面的變量類似的數據,但這應該用於控制器。
  • $網站 ||這包含站點設置,已保存在數據庫中的每個站點設置數據(從SITE_URL廣告設置)
  • $定點> SITE_URL ||這是你如何使用你的網站的網址這個平臺
  • $這個 - >網站內||這應該內部控制器可以用來抓取網站設置

所以要根據您的問題,您應該使用$site->site_url而不是site_url();

根本上改變這一點:

$link = site_url('ContentController/showActivities/' . $user->id); 

這個

$link = $site->site_url.'ContentController/showActivities/' . $user->id; 

或者如果我們談論javascript,那麼JavaScript的全局變量是也在那裏。你應該用site_url的網站鏈接,以便編輯如下:

function ref(id) { 
    window.open('ContentController/showActivities/'+id, '_blank'); 
} 

這個

function ref(id) { 
    window.location.replace(site_url + 'ContentController/showActivities/'+id, '_blank'); 
} 

這裏介紹的全局變量的JavaScript:

  • site_url ||這包含你的網站URL(從站點設置)
  • user_data ||這包含了當前用戶的數據(僅一切密碼是不存在的)
  • site_info ||這包含網站設置數據。
  • tran ||這包含多語言翻譯
  • current_folder ||這包含當前文件夾的哈希ID上,您目前
    • current_folder爲0,如果是在根文件夾中,否則如果folder如果是在非功能視圖。
0

試試這個:

function ref(id) { 
    window.open('<?php echo base_url()?>ContentController/showActivities/'+id, '_blank'); 
} 
相關問題