为什么我不能更新数据?

问题描述

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">&nbsp;*</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">&nbsp;*</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">&nbsp;*</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">&nbsp;*</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">&nbsp;*</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');似乎在您最初使用它来获取数据时仍然存在。

此外,您似乎没有正确处理上传的文件(图像),请仔细检查。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...