Codeigniter:获取$ row上的文本框值

时间:2014-09-03 06:05:47

标签: php codeigniter

我只想问你如何在这段代码中获得texbox的价值:

以下是我的观点:

    <div class="row">
    <h3><input type='text' name="table1" value='<?php echo $table1; ?>' style='border: none; background-color: transparent;' readonly/></h3>
    <div class="table_design">
        <button style='position: absolute; top:290px; right: 173px;' class='btn_addinventory btn-success btn-sm' id='btn_addinventory' name='btn_addinventory'><span class='glyphicon glyphicon-plus'></span>&nbsp;Add Inventory</button>
        <table class="boom_table">           
            <tr>
                <?php foreach($sample1 as $field) { ?>
                <th><?php echo $field->name; ?></th>
                <?php } ?>
            </tr> 
            <?php foreach($select1 as $row) { ?>
            <tr>
                <td><?php echo $row->ID; ?></td>
            </tr>
            <?php } ?>
        </table>
        <?php foreach($sample1 as $field) { ?>
        <input type="text" name="txt_rowname" value="<?php echo $field->name; ?>"/>
        <?php } ?>
    </div>
</div>

这是控制器:

public function inventory_new(){
        $tablenaming1 = $_POST['ninja7'];
//        var_dump($tablenaming1);
//        exit;
        $this->session->userdata('login_session');
        $this->data['title'] = "Inventory";
        $this->load->vars($this->data);


        $this->load->view('homeview');

        $select_inv['inventorytype'] = $this->inventory_model->select_tables();
        $this->load->view('inventoryview', $select_inv);


        $sample['sample'] = $this->inventory_model->select_fields_2($_POST['ninja7']);
        $select_details['select'] = $this->inventory_model->select_queries2($this->input->post());
//        var_dump($select_details);
//        exit;
        $value_array = array('sample1' => $sample['sample'],
                             'table1' => $tablenaming1,
                             'select1' => $select_details['select']);

        $this->load->view('sampleviewtable', $value_array);

        $this->load->view('footer_view');

    }

这是我的模特:

public function select_fields_2($tablename2){
     $fields = $this->db->field_data($tablename2);
     return $fields;
 }

public function select_queries2($tablename){
     $select_table = $this->db->select('*')
                              ->from($tablename['ninja7']);
     return $select_table->get()->result();
 }

在上面的视图中,您将看到:

                <?php foreach($select1 as $row) { ?>
                <tr>
                    <td><?php echo $row->ID; ?></td>
                </tr>
                <?php } ?>

而且:

        <?php foreach($sample1 as $field) { ?>
        <input type="text" name="txt_rowname" value="<?php echo $field->name; ?>"/>
        <?php } ?>

我希望从我的视图中获取<input type="text" name="txt_rowname" value="<?php echo $field->name; ?>"/>的值,例如:如果此文本框的值等于'Name'而不是$row->ID,那么它应该是$row->Name }。我真的无法弄清楚这一点,我想传递文本框的值,而不是在$ row上放置'ID'。有没有办法做到这一点?

提前感谢您的帮助! :)

1 个答案:

答案 0 :(得分:1)

Eljon根据您的意见和我的理解您的要求是您需要在点击表名时填充表格结构。

所以,在codeigniter中,他们是一个简单的方法来实现这个:

$fields = $this->db->list_fields('table_name');

foreach ($fields as $field)
{
   echo $field;
} 

此处&#39; list_fields&#39;将为您提供指定表格的字段名称。

如果您想获取现场数据,可以尝试一下:

$fields = $this->db->field_data('table_name');

foreach ($fields as $field)
{
   echo $field->name;
   echo $field->type;
   echo $field->max_length;
   echo $field->primary_key;
} 

以下是codeigniter文档中的更多信息 https://ellislab.com/codeigniter/user-guide/database/fields.html

希望这会对你有所帮助。

此致 Zeeshan。

-----更新------ 您可以使用内置的codeigniter库以表格结构填充数据库表,您可以在视图中直接回显该表,代码如下:

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

$query = $this->db->get('table_name');

$page_data['db_table'] = $this->table->generate($query);

在您看来:

echo $db_table

---更新2 ---- 根据您的意见和要求进行更新

您可以使用表类的set_template将id设置为

$tmpl = array ( 'table_open' => '<table id="YOUR_ID" class="mytable">' );
$this->table->set_template($tmpl);

此处有关表格类的更多详情https://ellislab.com/codeigniter/user-guide/libraries/table.html