如何解决为什么我不能更新数据?
original data echo data upated data does not updated into databse 控制器更新 我从表单获取ID,并传递值以在下一页显示数据。 它将根据用户单击哪个行按钮显示某些数据。
<?php
class ControllerUpdate extends CI_Controller{
public function __construct(){
parent:: __construct();
$this->load->model('common/ModelUpdate');
$this->load->database();
$this->load->library('form_validation');
$this->load->helper(array('form','url'));
}
public function index(){
//show data by id
$id = $this->input->get('id');
$data['showData'] = $this->ModelUpdate->showData($id);
$this->load->view('template/update',$data);
if($this->input->post('updates')){
$id = $this->input->post('id');
$site_name = $this->input->post('names');
$address = $this->input->post('addresses');
$description = $this->input->post('descriptions');
$image = $this->input->post('images');
$this->ModelUpdate->updateData($id,$site_name,$address,$description,$image);
echo "<script>alert('Data Updated Successfully');</script>";
}
}
}
?>
模型更新 更新数据时,我已经传递了ID,它不会更新数据,但会回显数据已成功更新。
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class ModelUpdate extends CI_Model {
public function showData($id){
$sql = "SELECT DISTINCT * FROM `web_listing` WHERE `id` = '".$id."'";
$result = $this->db->query($sql);
return $result;
}
public function updateData($id,$images){
//,`image_file` = '$image_file'
echo "<pre>";
print_r($id ."<br>". $site_name ."<br>". $address ."<br>". $description ."<br>". $images);
echo "</pre>";
$sql = "UPDATE `web_listing` SET `website_name` = '$site_name',`website_address` = '$address',`description` = '$description',`image_name` = '$images' WHERE `id` = '".$id."'";
$query = $this->db->query($sql);
return $query;
}
}
?>
更新视图 我还通过了动作中的ID和提交按钮中的值。但是更新功能仍然无法正常工作。
<?php
if($showData->num_rows() > 0)
{
foreach($showData->result_array() as $row){
$ids = $row['id'];
?>
<form class="form-horizontal" id="form" method="post" action="<?php base_url('updateData/$ids')?>" enctype="multipart/form-data">
<div class="form-group">
<label class="control-label col-sm-3">Id:<span class="required"> *</span></label>
<div class="col-sm-9">
<input type="text" disabled="disabled " class="form-control" id="id" name="id" value="<?php echo $row['id'] ; ?>" required>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-3">Website Name:<span class="required"> *</span></label>
<div class="col-sm-9">
<input type="text" class="form-control" id="names" name="names" value="<?php echo $row['website_name'] ; ?>" required>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-3">Website Address:<span class="required"> *</span></label>
<div class="col-sm-9">
<input type="text" class="form-control" id="addresses" name="addresses" value="<?php echo $row['website_address'] ; ?>" required>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-3">Description:<span class="required"> *</span></label>
<div class="col-sm-9">
<input type="text" class="form-control" id="descriptions" name="descriptions" value="<?php echo $row['description'] ; ?>" required>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-3">Image:<span class="required"> *</span></label>
<div class="col-sm-9">
<input type="file" class="form-control" id="images" name="images" value="<?php echo $row['image_file'] ; ?>" >
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-3 col-sm-9">
<button type="submit" value="<?php echo $ids ; ?>" id="updates" name="updates" class="btn btn-default" >Update</button>
<a href="<?php base_url()?>editData"><button type="button" value="back" id="back" name="back" class="btn btn-default" onclick="back()">Back</button></a>
</div>
</div>
</form>
</div>
</div>
<?php
}
}
?>
解决方法
禁用的表单元素不会发送到PHP,因此$this->input->post('id')
将为空白,这就是为什么echo_data图像/屏幕截图不显示ID的原因。将表单元素更改为只读而不是禁用,或使用$this->input->get('id');
似乎在您最初使用它来获取数据时仍然存在。
此外,您似乎没有正确处理上传的文件(图像),请仔细检查。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。