【问题标题】:Load a view by clicking in a button CodeIgniter通过单击按钮 CodeIgniter 加载视图
【发布时间】:2020-01-01 00:47:38
【问题描述】:

我正在尝试通过使用 CodeIgniter 单击 <a> 来加载视图。

下面是我的代码:

<a class='b2' href='<?echo base_url('application/views/create_account')?>'>CREATE AN ACCOUNT</a>

但是当我点击它时,我会收到消息:

禁止 您无权访问此资源。 此外,在尝试使用 ErrorDocument 处理请求时遇到 403 Forbidden 错误。

视图名称正确。 如何通过单击链接或按钮来加载视图?

【问题讨论】:

  • 你想调用一个控制器/方法来显示视图。您不能直接访问它。
  • 是的,我相信了。像 $this->load->view('create_account') 那样做。但是当我这样做时,视图会在屏幕重新加载时加载,而不是在我单击链接或按钮时加载
  • 如果你有一个链接到一个控制器/方法,比如 account/display_create_account,然后从中加载视图,它将显示页面。从你所说的来看,这只是一个链接,可以带来另一个观点。如果你没有在这里告诉我们整个故事 - 你最好告诉我们。
  • 是的,我想在按下链接或按钮时显示 create_account 页面,而不是在页面加载时显示,因为我在加载 create_account 之前有一个页面

标签: php html codeigniter


【解决方案1】:

CodeIgniter 是基于 MVC 的库。不使用控制器无法直接加载视图。

试试这个:-

1> 在应用程序/控制器中创建一个控制器。

类 Createaccount 扩展 CI_Controller {

  function index() {
    $this->load->view('create_account','');
  }

}

2> 在 application/config/routes.php 中创建路由。

$route['create_account'] = "CreateAccount";

3> 在 html 中使用以下代码:-

href = "< ?php echo base_url().'create_account' ?>".

【讨论】:

  • 为它创建一条路线是有意义的,但仍然是禁止的;-;我不应该直接调用控制器,并且在控制器内部,一个名为 index 的函数来调用视图吗?像 $this->load->controller('CreateAccount');在 CreateAccount 控制器中,我有方法 Index,调用视图,如 $this->load->view('create_account')。我想这是有道理的,但也不起作用
【解决方案2】:

首先传递给控制器 在视图页面中:

<a href="<?=site_url('controller_name/fun_name')?>">CREATE AN ACCOUNT </a>

在控制器中:

public function function_name(){
    $this->load->view('create_account', $data, FALSE);  
}

【讨论】:

  • 一直说是禁止的 (403)
【解决方案3】:

只需将第二个参数传递给加载视图方法为 true $this-&gt;load-&gt;view('create_account', true)。这个 true 将从控制器传递 html 数据,然后您可以通过 jQuery 或其他方式将该数据显示到现有页面。

在您的控制器中,您必须返回类似的视图,

echo $this->load->view('create_account', [], true);

【讨论】:

  • 它仍然说它被禁止:(
  • 我修改了我的答案,请尝试一下,而不是从控制器返回视图尝试回显它并将 true 作为第三个参数而不是第二个和第二个设置的空白数组传递。
  • 它可以工作,但是页面加载时会加载视图,因此它会出现在上一个div的上方
  • 您需要在控制器中创建另一个方法,然后使用 jQuery ajax 调用该方法,然后您将在 ajax 成功下获得视图数据,将该视图数据放到弹出窗口或您想要显示的任何位置。跨度>
  • 您不必通过 application/views/ 路径来加载您的视图。只需传递一个文件名就足够了。所以删除该路径并简单地使用 $this->load->view('create_account'); 加载它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-13
  • 2013-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-17
相关资源
最近更新 更多