Codeigniter set_value不起作用

时间:2017-09-10 00:28:18

标签: php html5 codeigniter

我查询数据库并发送一个$ data数组从我的控制器发送到我的视图,我在那里使用CI的表单帮助程序与set_value(field_name,default)但数据是没有被装上。

这就是我目前在我看来所做的事情:

<input type="hidden" id="artist-id" name="record_artist_id" value="<?php echo set_value('record_artist_id', $record_artist_id); ?>">

我以为我必须使用输入助手才能尝试:

<label for="record-name"><span class="required">*</span>Name:</label>
                    <?php
                    echo form_input([
                        'type' => 'text',
                        'name' => 'record_name',
                        'id' => 'record-name' ,
                        'class' => 'form-control',
                        'value' => set_value('record_name')
                    ]);
                    ?>

但仍然没有工作。

这是有效的:

<input id="record-name" name="record_name" type="text" value="<?php echo (isset($record_name)) ? $record_name : ''; ?>" class="form-control">

表单助手正在autoload.php中加载

$autoload['helper'] = array('url', 'file', 'form', 'base');

我不知道这是否相关,但我将视图作为字符串,然后将其传递给模板,例如:

public function add_content($view, $content = NULL){
        $this->content = $this->load->view($view, $content, TRUE);
        return $this->content;
    }

以后用另一种方法:

// render content
            $this->load->view('partials/content', ['content' => $this->content]);

对我做错了什么的想法?

1 个答案:

答案 0 :(得分:0)

试试这个

控制器

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
error_reporting(1);
class Welcome extends CI_Controller {
    public function index()
    {
        $this->load->view('welcome_message');
    }

     public function test()
    {
          $this->load->helper('form','url');
          $this->load->library("form_validation");
//          echo "vijay";
          $post=$this->input->post();
          if($post)
          {
//               echo "<pre>";print_r($post);die;
               $this->form_validation->set_rules('record_name', 'Record Name', 'trim|required');
               $this->form_validation->set_rules('quantity', 'quantity Name', 'trim|required|numeric');
               if($this->form_validation->run()==true)
               {
                    redirect('/');
                    return 0;
               }
          }

          $data['message']=  validation_errors();
        $this->load->view('test',$data);
    }
}

查看

<!DOCTYPE html>
<html lang="en">
     <head>
          <meta charset="utf-8">
          <title>Welcome to CodeIgniter</title>


     </head>
     <body>

          <div id="container">
               <h1>Welcome to CodeIgniter!</h1>

               <div id="body">

               </div>
               <p>
                 <?= !empty($message) ? $message : '' ?>
               </p>
               <form method="post">
                    <label for="record-name"><span class="required">*</span>Name:</label>
                    <?php
                    $record_name_input = array('type' => 'text',
                                             'name' => 'record_name',
                                             'id' => 'record-name',
                                             'class' => 'form-control',
                                             'value' => set_value('record_name')
                    );
                    echo form_input($record_name_input);
                    ?>

                    <h5>Username</h5>
                    <input type="text" name="quantity" value="<?php echo set_value('quantity', '0'); ?>" size="50" />
                    <?php
                    echo form_submit("submit", "submit data");
                    ?>

               </form>
          </div>

     </body>
</html>
  

直到您不使用$this->form_validation->run()直到set_value('field_name')无效