Codeigniter表单不更新和不重定向

时间:2014-09-13 02:19:58

标签: php codeigniter

我正在使用codeigniter表单验证lib,由于某种原因,表单不更新此特定行。表格提交时没有重定向。

在我的控制器上,我使用这样的功能

$this->load->model('admin/setting/model_setting');

$config_meta_title = $this->model_setting->edit_meta_title($this->input->post('config_meta_title'));

if (!empty($config_meta_title)) {
   $data['config_meta_title'] = $this->input->post('config_meta_title');
} else {
   $data['config_meta_title'] = $this->configs->get('config_meta_title');
}

但不更新数据库。

模型

<?php

class Model_setting extends CI_Model {

   public function edit_meta_title() {

      $data = array(
         'group' => "config",
         'key' => "config_meta_title",
         'value' => $this->input->post('config_meta_title')
      );

      $this->db->where('setting_id', "2");
      $this->db->update('setting', $data);
   }
}

控制器

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Setting extends MY_Controller {

    public function __construct() {
      parent::__construct();
            $this->lang->load('admin/setting/setting', 'english');
            $this->lang->load('admin/english', 'english');
            if ($this->session->userdata('user_id') == true) {
                return true;
            } else {
                redirect('admin');
            }
   }

   public function index() {
    $this->load->library('form_validation');

    $data['text_yes'] = $this->lang->line('text_yes');
        $data['text_no'] = $this->lang->line('text_no');

        $data['entry_meta_title'] = $this->lang->line('entry_meta_title');
        $data['entry_maintenance'] = $this->lang->line('entry_maintenance');

        $data['button_save'] = $this->lang->line('button_save'); 
        $data['button_cancel'] = $this->lang->line('button_cancel');

        $data['tab_store'] = $this->lang->line('tab_store');

        $data['action'] = site_url('admin/setting');

        $data['logout'] = site_url('admin/logout');

        $data['cancel'] = site_url('admin/dashboard');

        $this->load->model('admin/setting/model_setting');

        $config_meta_title = $this->model_setting->edit_meta_title($this->input->post('config_meta_title'));

        if (!empty($config_meta_title)) {
            $data['config_meta_title'] = $this->input->post('config_meta_title');
        } else {
            $data['config_meta_title'] = $this->configs->get('config_meta_title');
        }

    if ($this->form_validation->run() == FALSE) {

        return $this->load->view('setting/settings', $data);

    } else {

        redirect('admin/dashboard');

    }
   }
}

2 个答案:

答案 0 :(得分:1)

在你的模型中,请尝试将其作为参数传递:

public function edit_meta_title($config_meta_title) {
    $data = array(
         'group' => "config",
         'key' => "config_meta_title",
         'value' => $config_meta_title,
    );

    $this->db->where('setting_id', "2");
    $this->db->update('setting', $data);

    return $this->db->affected_rows();
}

答案 1 :(得分:0)

我已经修复了我的问题所有工作完美

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Setting extends MY_Controller {

    public function __construct() {
      parent::__construct();
            $this->lang->load('admin/setting/setting', 'english');
            $this->lang->load('admin/english', 'english');
            if ($this->session->userdata('user_id') == true) {
                return true;
            } else {
                redirect('admin');
            }
   }

   public function index() {
    $data = array();

    $data['text_yes'] = $this->lang->line('text_yes');
        $data['text_no'] = $this->lang->line('text_no');

        $data['entry_meta_title'] = $this->lang->line('entry_meta_title');
        $data['entry_template'] = $this->lang->line('entry_template');
        $data['entry_maintenance'] = $this->lang->line('entry_maintenance');

        $data['button_save'] = $this->lang->line('button_save'); 
        $data['button_cancel'] = $this->lang->line('button_cancel');

        $data['tab_store'] = $this->lang->line('tab_store');

        $data['action'] = site_url('admin/setting');

        $data['logout'] = site_url('admin/logout');

        $data['cancel'] = site_url('admin/dashboard');

        $this->load->model('admin/setting/model_setting');

        if (empty($config_meta_title)) {
            $data['config_meta_title'] = $this->configs->get('config_meta_title');
        }

        if (empty($config_template)) {
            $data['config_template'] = $this->configs->get('config_template');
        }

        $data['templates'] = array();

        $directories = glob(APPPATH . 'modules/catalog/views/theme/*', GLOB_ONLYDIR);

        foreach ($directories as $directory) {
            $data['templates'][] = basename($directory);
        }

        if (empty($config_maintenance)) {
            $data['config_maintenance'] = $this->configs->get('config_maintenance');
        }


        $this->load->library('form_validation');

        $this->form_validation->set_rules('config_meta_title', 'Meta Title');
        $this->form_validation->set_rules('config_template', 'Template');
        $this->form_validation->set_rules('config_maintenance', 'Maintenance');

    if ($this->form_validation->run() == FALSE) {

        return $this->load->view('setting/settings', $data);

    } else {

        $config_meta_title = $this->model_setting->edit_meta_title($this->input->post('config_meta_title'));

        $config_template = $this->model_setting->edit_template($this->input->post('config_template'));

        $config_maintenance = $this->model_setting->edit_maintenance($this->input->post('config_maintenance'));

        redirect('admin/dashboard');

    }
   }

}

模型

<?php

class Model_setting extends CI_Model {

   public function edit_maintenance($config_maintenance) {
      $data = array(
         'group' => "config",
         'key' => "config_maintenance",
         'value' => $config_maintenance,
      );

      $this->db->where('setting_id', "1");
      $this->db->update('setting', $data);
   }

   public function edit_meta_title($config_meta_title) {
      $data = array(
         'group' => "config",
         'key' => "config_meta_title",
         'value' => $config_meta_title,
      );

      $this->db->where('setting_id', "2");
      $this->db->update('setting', $data);
   }

   public function edit_template($config_template) {
      $data = array(
         'group' => "config",
         'key' => "config_template",
         'value' => $config_template,
      );

      $this->db->where('setting_id', "3");
      $this->db->update('setting', $data);
   }


}