CodeIgniter将查询结果作为文本输入值

时间:2013-07-06 11:53:40

标签: php codeigniter

我写了一小段根据输入用户提供的数据库表中的值。这里有很快发生的事件:

  1. 用户输入数字到输入并提交表单
  2. 该数据应该调用控制器,然后控制器必须匹配并从数据库表中获取相关数据,然后再将其传递给控制器​​。
  3. 然后控制器必须将其传递给视图,其中另一个文本输入(只读)将数据作为值获取。
  4. 但我收到的是一个错误:

    消息:未定义的变量:due_amount 文件名:main / new_payment.php 行号:148

    new_payment.php中的第148行是

    );
    

    在视图中。

    这是我的模型

    function get_by_room_number($room_data) {       
        $this->db->select('due_amount');
        $query = $this->db->get_where('rooms', array('room_number' => $room_data), 1);
    
        if($query->num_rows()>0) {
            foreach ($query->result() as $row) {
                return $row->due_amount;
            }
        }
    

    这是控制器

    function search_by_number() {
        $room_data = $this->input->post('room_number');
        $due_amount = $this->payments_model->get_by_room_number($room_data);
        $this->index();
    }
    

    这是查看 :( new_payment.php)

    <?php echo form_open('payments/search_by_number'); ?>    
    <?php $data = array(
        'name'  =>  'total_amount',
        'id'    =>  'appendedPrependedInput',
        'class' =>  'span2',
        'value' =>  $due_amount
        ); // Line Number 148
    echo form_input($data);
    ?>   
    
    <?php echo form_close(); ?>
    

2 个答案:

答案 0 :(得分:1)

尝试

$data['due_amount'] = $this->payments_model->get_by_room_number($room_data);

并尝试将其发送到像

这样的视图
$this->load->view('view_file',$data);

并在您的视图文件中回显它

echo $due_amount;

假设$data是您从控制器函数传递到视图的数组。您将控制器中的变量传递给视图。您需要通过数组数据传递它,然后您可以获取变量名称变量

答案 1 :(得分:1)

您应该将due_amount分配给$data变量并将其传递给查看。像这样:

$data['room_data'] = $this->input->post('room_number');
$data['due_amount'] = $this->payments_model->get_by_room_number($data['room_data']);
$this->load->view('my_view', $data);

然后在视野中你可以这样做:

print_r($room_data);
print_r($due_amount);

CodeIgniter User Guide可能会帮助您更好地理解它。