CodeIgniter:嵌套视图中的表单操作
CodeIgniter: form action in nested view
我对 codeigniter 和表单有点问题。
我正在从事一个安全非常重要的项目。我使用 codeigniter 和 bootstrap。
我有主视图,其中包括导航栏和其他一些 html。在该主视图中,我有 <div id="change">
,我正在通过按钮组进行更改。使用这些按钮,我在包含 $this->load->view('pages/something', $data);
的控制器中调用函数 当我按下其中一个按钮时,<div id="change">
被更改,并且在其中显示一个视图并且 link 没有更改,所以主视图保持原样。
但是当按下其中一个按钮时,将显示带有表单的视图。我在其中使用 form_open('controller/function', $attributes);
。
问题是,当我提交此表单时,link 已更改并且主视图不再显示在屏幕上。
我怎样才能实现,当我提交表单时,所有将被更改的只是 <div id="change">
而不是整个网站。
我知道我英语不好,对不起。我感谢任何帮助。
谢谢!
您想刷新页面的一部分而不是整个页面?也许你需要 AJAX.
另外,要使 link 不变,您必须更改
config/routes.php
像这样:
$routes['controller/method'] = "your link";
阅读this.
希望对您有所帮助
您可以使用 AJAX 提交表单,这是使用 jQuery 的基本示例:
// this is the id of the form
$("#idForm").submit(function() {
var url = "path/to/your/script"; // the script where you handle the form input.
$.ajax({
type: "POST",
url: url,
data: $("#idForm").serialize(), // serializes the form's elements.
success: function(data) {
// 'data' is the response from the php script.
// Update <div id="change"> here.
}
});
return false; // avoid to execute the actual submit of the form. (This stops the URL changing).
});
示例修改自 this answer。
我对 codeigniter 和表单有点问题。
我正在从事一个安全非常重要的项目。我使用 codeigniter 和 bootstrap。
我有主视图,其中包括导航栏和其他一些 html。在该主视图中,我有 <div id="change">
,我正在通过按钮组进行更改。使用这些按钮,我在包含 $this->load->view('pages/something', $data);
的控制器中调用函数 当我按下其中一个按钮时,<div id="change">
被更改,并且在其中显示一个视图并且 link 没有更改,所以主视图保持原样。
但是当按下其中一个按钮时,将显示带有表单的视图。我在其中使用 form_open('controller/function', $attributes);
。
问题是,当我提交此表单时,link 已更改并且主视图不再显示在屏幕上。
我怎样才能实现,当我提交表单时,所有将被更改的只是 <div id="change">
而不是整个网站。
我知道我英语不好,对不起。我感谢任何帮助。 谢谢!
您想刷新页面的一部分而不是整个页面?也许你需要 AJAX.
另外,要使 link 不变,您必须更改
config/routes.php
像这样:
$routes['controller/method'] = "your link";
阅读this.
希望对您有所帮助
您可以使用 AJAX 提交表单,这是使用 jQuery 的基本示例:
// this is the id of the form
$("#idForm").submit(function() {
var url = "path/to/your/script"; // the script where you handle the form input.
$.ajax({
type: "POST",
url: url,
data: $("#idForm").serialize(), // serializes the form's elements.
success: function(data) {
// 'data' is the response from the php script.
// Update <div id="change"> here.
}
});
return false; // avoid to execute the actual submit of the form. (This stops the URL changing).
});
示例修改自 this answer。