首页 文章

CodeIgniter:从数据库中获取的数据数组填充视图中的输入文本

提问于
浏览
0

这返回print_r($ query-> result());将会:

Array ( [0] => stdClass Object ( [guest_name] => Test Name [guest_gender] => Male [guest_nic_pp_dl] => 123456789 ) )

我需要的是将这些值传递到视图中的输入文本框,单选按钮和下拉列表中 .

例如,我需要'guest_name'在输入中,要在视图上选择'guest_gender'值,并在下拉列表中选择与'guest_nic_pp_dl'相对应的下拉值(HTML select) .

Controller:

function get_customer_details() {
    $guest_name = $this->input->post('guest_name');
    $this->banquet_model->talk_to_new_guest_table($guest_name);
    $this->load->view('/main/banquet_view');
}

Model:

function talk_to_new_guest_table($guest_name) {
    $query = $this->db->query(" SELECT guest_name, guest_gender, guest_nic_pp_dl
                                FROM new_guest 
                                WHERE guest_name LIKE '$guest_name%'
                                LIMIT 1 ");
    if($query->num_rows()>0) {
        return $query->result();
    }
    else {
        return 0;
    }
}

View:

<div class="control-group">   
<label for="guest_name" class="control-label"><i class="icon-user"></i> Name: </label>
    <div class="controls">
        <div class="input-append">
        <input type="text" id="appendedInputButtons" class="span2" name="guest_name" value="<?php echo set_value('guest_name'); ?>">
        <input class="btn" type="submit" name="searchGuest" value="Search">
    </div>
<?php echo form_error('guest_name'); ?>
</div>

3 回答

  • 1

    Rajeev Ranjan和Prasanth的答案还可以,但是 return $query->result(); 你可以这样做 return $query->row(); 原因是因为result()返回一个需要迭代的对象数组,而row()对象返回一个你能做的对象没有循环迭代的引用 . 我希望这个能帮上忙

  • 1

    做一些改变

    控制器:

    $guest=$this->banquet_model->talk_to_new_guest_table($guest_name);
     //creating data array from returned result
     $data['guest_name']=$guest->guest_name;
     $data['guest_gender']=$guest->guest_gender;
     $data['guest_nic_pp_dl']=$guest->guest_nic_pp_dl;
     //loading view with data
     $this->load->view('/main/banquet_view',$data);
    

    更重要的是,所有这些数据数组元素都可以在视图页面上作为变量使用

    $data['guest_gender'] as $guest_gender
    
  • 2

    尝试一下以下内容:

    控制器:

    function get_customer_details() {
        $guest_name = $this->input->post('guest_name');
        $data = $this->banquet_model->talk_to_new_guest_table($guest_name);
        if ($data != 0) {
            $this->load->view('/main/banquet_view', $data);
        }
    }
    

    模型:

    function talk_to_new_guest_table($guest_name) {
        $query = $this->db->query(" SELECT guest_name, guest_gender, guest_nic_pp_dl
                                    FROM new_guest 
                                    WHERE guest_name LIKE '$guest_name%'
                                    LIMIT 1 ");
        if($query->num_rows()>0) {
            return $query->result();
        }
        else {
            return 0;
        }
    }
    

    视图:

    <div class="control-group">   
    <label for="guest_name" class="control-label"><i class="icon-user"></i> Name: </label>
        <div class="controls">
            <div class="input-append">
            <input type="text" id="appendedInputButtons" class="span2" name="guest_name" value="<?php echo $guest_name; ?>">
            <input class="btn" type="submit" name="searchGuest" value="Search">
        </div>
    <?php echo form_error('guest_name'); ?>
    </div>
    

相关问题