我正在Codeigniter中进行datable的工作。我想更新数据表中的值。我被卡在下面是我的代码。
下面是我的视图代码,在其中单击编辑按钮后,我已将id值传递给控制器App中的edituser函数。
<table id="user_table" class="display">
<thead>
<td>Id</td>
<td>Email</td>
<td>Password</td>
<td>Action</td>
</thead>
<tbody>
<?php
foreach ($rows as $row)
{
?>
<tr>
<td>
<?= $row->id ?>
</td>
<td>
<?= $row->email ?>
</td>
<td>
<?= $row->password ?>
</td>
<td>
<a href="app/edituser/<?php echo $row->id ?>"><button id="btn_edit_user" type="button" class="btn btn-primary">Edit</button></a>
</td>
</table>
因此它返回一个带有此URL“ this”的404页面 它正在返回ID,但我想通过控制器重定向到另一个页面。
下面是我的控制器代码。
public function edituser(){
$user_id = $this->uri->segment(3);
//$user_id = $this->input->post("user_id");
if(!empty($user_id)){
$data["page"] = "edituser";
$data["row"] = $this->crud->read_row("*", "user", array("id" => $user_id));
}
else{
$data["page"] = "404";
}
$this->load->view("app/index", $data);
}
答案 0 :(得分:1)
像这样在application/config/autoload.php
文件中添加URL助手
$autoload['helper'] = array('url');
假设您已正确创建.htaccess
文件,并且index.php
已从您的网址中删除。
现在使用base_url()
从视图中调用控制器功能
<a href="<?= base_url('app/edituser/'.$row->id)"><button id="btn_edit_user" type="button" class="btn btn-primary">Edit</button></a>
答案 1 :(得分:0)
尝试一下: id?>“>编辑 要么 ID'); ?>“>编辑
答案 2 :(得分:0)
<a href="**<?php echo base_url().index_page()."/app/edituser/".$row['id']?>**">
<button id="btn_edit_user" type="button"class="btn btn-primary">
Edit
</button>
</a>
IN controller you can access this like
function edituser($id=''){
"your query"
}
答案 3 :(得分:0)
我在这里没有得到实际的问题。为了使它起作用,您需要在Apache服务器上具有一个启用了mod_rewrite的.htaccess文件,我想您已经拥有了。当使用这样的URL时,您应该具有某种URIDispatcher类,以清楚地查看请求的URL中的每个细节。因此,这里的事情是您检查了几件事,然后根据代码对它们的响应方式对其进行纠正:
首先,在您的Controller脚本上,检查REQUEST_URI
是否正确,并在脚本的开头键入以下内容:
<?php
die($_SERVER['REQUEST_URI']);
当您使用不带参数的URL(base_uri?id=1
)时,让我们使用explode()
方法来分隔孔URI:
$uri_array = explode('/', $_SERVER['REQUEST_URI']);
由于您的URI为/website/app/app/edituser/1
,因此您现在将拥有一个位置为0的数组,其中包含一个空String。这是正常的行为,只需使用$final_uri_array = array_filter($uri_array);
。 请注意,如果array_filter()为零,请删除ID。。如果一切正常,则ID应位于$final_uri_array[4]
中。现在,让我们检查一下Controller。
您在控制器上的代码可能是这样的:
<?php
//Your stuff
public function edituser(){
$final_uri_array = array_filter( explode('/', $_SERVER['REQUEST_URI']) );
if(sizeof($final_uri_array) < 5){
//400 Bad request
http_response_code(400);
} else {
/*
* Check ID existence from your database
* Should look womething like this
*/
$user_id = intval($final_uri_array[4]);
$user_data = $database->search($user_id);
if($user_data->num_rows > 0){
//If the user was found, redirect to a page
header('Location: /your/edit/view/uri');
} else {
//404 Not found
http_response_code(404)
}
}
}
//More stuff