【问题标题】:Codeigniter how to add a textarea if a certain value is selected in dropdown如果在下拉列表中选择了某个值,Codeigniter 如何添加文本区域
【发布时间】:2016-02-03 06:53:33
【问题描述】:

我有一个由我的数据库填充的下拉列表,所以我想要的是,如果用户想要添加另一个项目但无法在下拉列表中找到类别,他将从列表中选择“其他”,然后创建一个新类别对于那个特定的项目

查看

<!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags --> 

        <title>Add Item</title>

        <!-- Bootstrap -->
        <link href="css/bootstrap.min.css" rel="stylesheet">
        <link href="css/bootstrap-theme.min.css" rel="stylesheet">
        <link rel="shortcut icon" href="assets/ICON.PNG">
        <link href='https://fonts.googleapis.com/css?family=Raleway:200' rel='stylesheet' type='text/css'>

</head>

<body>
<div class="container">


    <div class="row" >


        <div class="col-md-10">
            <br>
            <div class="panel panel-default">
                <div class="panel-body">



                    <div class="panel panel-default">
                        <div class="panel-body">

                            <?php echo form_open_multipart('add_products/do_upload'); ?>



                            <center>        <?php if (validation_errors()): ?>

                                    <div class="alert alert-danger alert-dismissible" role="alert" style="width: 700px;">
                                        <?php echo validation_errors(); ?>
                                    </div>
                                <?php endif ?>


                                <div class="form-group">
                                    <label class="col-sm-2 control-label" style=" color: white"></label>

                                    <label class="col-sm-2 control-label">Product Image</label>
                                    <div class="col-sm-5">
                                        <input type="file" class="form-control" placeholder="" name="userfile">
                                    </div>

                                </div>
                                <br> <br>
                                <br>
                                 <div class="form-group">
                                    <label class="col-sm-2 control-label" style=" color: white"></label>

                                    <label class="col-sm-2 control-label">Product Name</label>
                                    <div class="col-sm-5">
                                        <input type="text" class="form-control" placeholder="ex. coffee"
                                               name="name"
                                               value="<?php echo set_value('name'); ?>">
                                    </div>

                                </div>
                                <br> <br>

                                <div class="form-group">
                                    <label class="col-sm-2 control-label" style=" color: white"></label>

                                    <label class="col-sm-2 control-label">Description</label>
                                    <div class="col-sm-5">
                                        <input type="text" class="form-control" placeholder="ex.  brewed drink from roasted coffee"
                                               name="description"
                                               value="<?php echo set_value('description'); ?>">
                                    </div>

                                </div>
                                <br> <br>

                                <div class="form-group">
                                    <label class="col-sm-2 control-label" style=" color: white"></label>

                                    <label class="col-sm-2 control-label">Price</label>
                                    <div class="col-sm-5">
                                        <input type="number" class="form-control" placeholder="ex. P180"
                                               name="price"
                                               value="<?php echo set_value('price'); ?>">
                                    </div>

                                </div>       
                                <br> <br>
                                <div class="form-group">
                                    <label class="col-sm-2 control-label" style=" color: white"></label>

                                    <label class="col-sm-2 control-label">Category</label>
                                    <div class="col-sm-5">

                                 <select class="form-control" name="prod_category">
            <?php 

            foreach($category as $row)
            { 
              echo '<option value="'.$row->category.'">'.$row->category.'</option>';

            }
            ?>
                                     <option>Other</option>

            </select></div>

                                </div>    


                                <br> <br>

                                <button style="margin-left: 75px; width: 320px;" type="submit" class="btn btn-success">Submit</button>

                                </form>
                            <?php echo form_close() ?></div>

                    </div>
                </div>

            </div>

        </div>


    </div>



</div>
</div>


</body>
</html>

控制器”

function index()
 {
      $this->load->helper(array('form'));
   if($this->session->userdata('logged_in'))
   {
     $session_data = $this->session->userdata('logged_in');
     $data['username'] = $session_data['username'];
     $data['category'] = $this->User->get_category();
     $this->load->view('add_products',$data);
   }

型号:

public function get_category(){
        $p = $this->db->query("select category from product_category");
        $p1 = $p->result();
        return $p1;
    }

【问题讨论】:

    标签: database forms codeigniter


    【解决方案1】:

    您可以在 jquery 中使用 change() 将文本区域添加到您的 UI

    $("#category").on("change",function() {
        var selectedcat = $(this).val();
        if(selectedcat == -1)
        {
            $("#newcategory").show();
        }
      });
    

    请参考下面的文件 https://jsfiddle.net/5ueco3s9/

    【讨论】:

    • 非常感谢!!!但是如果我选择了一个已经在列表中的类别,它就不会被插入到数据库中
    • 它不应该插入正确我不清楚你,如果一个类别已经存在那么你为什么需要它一次又一次地插入它会导致数据重复?
    【解决方案2】:

    您的选择框的html:-

     <select class="form-control select" name="prod_category">
                    <?php 
    
                    foreach($category as $row)
                    { 
                      echo '<option value="'.$row->category.'">'.$row->category.'</option>';
    
                    }
                    ?>
                                             <option value="lllvnjs">Other</option>
    
                    </select>
    <div class="append"></div>
    

    然后为您的选择框更改 jquery(不要忘记在您的标记中添加 jquery)

    $("select").change(function(){
       if($(this).val() == "lllvnjs")
    {
       $(".append").append('<input type="text" value="" name="other_category" />');
    }
    });
    

    最后在提交表单时在控制器中检查此条件

    $category = $_POST["prod_category"];
    if($category  == "lllvnjs")
    {
    $category = $_POST["other_category"];
    }
    

    然后将它插入到你的数据库中或者任何你想用它做的事情:)

    【讨论】:

    • 我在哪里放最后一个代码?我尝试了您的代码,但是当我插入现有类别时,它返回 0 但其他类别工作正常
    • @Christian 最后的代码把它放在你提交表单的控制器中并将其插入为 $this->db->insert("product_category",array("category"=>$category))
    猜你喜欢
    • 2017-10-17
    • 2021-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-06
    • 2019-11-24
    • 2013-01-04
    • 2011-10-18
    相关资源
    最近更新 更多