首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >根据select value Codeigniter从表中获取数据并填充组合框

根据select value Codeigniter从表中获取数据并填充组合框
EN

Stack Overflow用户
提问于 2013-03-07 15:39:09
回答 2查看 11.1K关注 0票数 1

假设有一张表水果:

代码语言:javascript
代码运行次数:0
运行
复制
mysql> select * from FRUITS;
+---------+-----------+
| fruitid | fruitname |
+---------+-----------+
|       1 | Orange    |
|       2 | Apple     |
|       3 | Pear      |
|       4 | Banana    |
+---------+-----------+
4 rows in set (0.02 sec)

我有一个包含表单的视图文件。

在这里我有一个列表,用户可以从中选择他想要的食物,所以在用户选择“水果”的情况下,我从表水果中获取数据并填充一个组合框……

用户填写表单后,某些表将被更新。在这个过程中,当用户在食物列表中选择水果时,我需要查阅水果表中的数据并填写一个组合框。

如果我没有使用Codeigniter,我可以使用

代码语言:javascript
代码运行次数:0
运行
复制
<?php
 $conn = mysql_connect('localhost','yourUsernameHere','yourPasswordHere');
 mysql_select_db('testdb',$conn);
 $query = "select fruitid,fruitname from FRUITS order by fruitname";
 $result = mysql_query($query,$conn);
 $selectbox='<select name=\'fruit\'>';
 while ($row = mysql_fetch_assoc($result)) {
     $selectbox.='<option value=\"' . $row['fruitid'] . '\">' . $row['fruitname'] . '</option>';
 }

 $selectbox.='</select>';
 mysql_free_result($result);
 echo $selectbox;
?>

要填充表单内的组合框,然后捕获该值并将其发送到其他表中插入数据...

我如何在Codeigniter上做到这一点,因为查询必须在控制器文件中完成...?

更新

让我们说我有

模型

代码语言:javascript
代码运行次数:0
运行
复制
class Fruits extends CI_Model {

    function __construct()
    {
        parent::__construct();
    }

    function what_fruits()
    {
        $this->db->select('fruitname');
        $this->db->from('FRUITS');
        $q = $this->db->get('');
        if($q->num_rows() > 0) 
        {
            $data = array();
            foreach($q->result() as $row) 
            {
                $data=$row;
            }
            return $data;
        }
    }
}

控制器

代码语言:javascript
代码运行次数:0
运行
复制
class main_form_view extends CI_Controller
{
    function __construct()
    {
        parent::__construct();
    }

    public function index()
    {
        $this->load->view('main_form_view');
    }

    public function result()
    {
        $this->load->model('Fruits');
        $data['fruitname'] = $this->Fruits->what_fruits(); 

    }
}

视图main_form_view

代码语言:javascript
代码运行次数:0
运行
复制
<html>
    <head></head>
    <body>
    <form method="post">
        <select name="food" id="food" onchange="fill_cb_food(this.value);" >
          <option value="0">fruits</option>
          <option value="1">other1</option>
          <option value="2">other2</option>
        </select>

        //response of ajax call display here.???
       <div class="selectbox" id="id_fruits">
          <select name="fruits" id="fruits">
             <option value="">--Choose fruit--</option>
          </select>
       </div>



    </form>
    </body>
</html>



    function fill_cb_food(id)
    {
       $.ajax({
                type: "POST",
                url: "main_form_view/result.php,
                data: "fruit=" + fruitname,
                success: function(html){
                    $("#id_fruits").html(html);
                }
            });
    }

所以我想得到一个组合框

代码语言:javascript
代码运行次数:0
运行
复制
 Orange    
  Apple    
  Pear     
  Banana

当用户在表单中选择水果选项时...

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-07 15:46:57

您可以使用ajax post来获取数据运行时并填充到您的组合框中。像这样:

代码语言:javascript
代码运行次数:0
运行
复制
         $.ajax({
                url: 'http://url_to_fetch_fruit_table_data/',
                type: "POST",
                data:data,
                success: function(response) {
                   $("select").html(response);
                }
            });

或者您也可以使用每个的进行循环和填充。

票数 2
EN

Stack Overflow用户

发布于 2016-06-07 12:10:56

在模型中,您可以使用'*‘选择任何列。

您必须将数据传递给view-file:

代码语言:javascript
代码运行次数:0
运行
复制
class main_form_view extends CI_Controller
{    
    public function index()
    {
        $this->load->model('Fruits');
        $data['fruits'] = $this->Fruits->what_fruits(); 
        $this->load->view('main_form_view', $data);
    }
}

然后,您可以在view-file中执行以下操作:

代码语言:javascript
代码运行次数:0
运行
复制
<?php foreach($fruits as $fruit): ?>
    <option value="<?php print  $fruit['fruitid'] ?>"><?php print $fruit['fruitname']</option>
<?php endforeach; ?>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15265598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档