社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

如何在codeigniter中将ajax选定的依赖下拉选项传递给mysql数据库

Drowning_Prince • 5 年前 • 1372 次点击  

我有两个独立的下拉框。从中,我将使用一个依赖下拉框的selected选项更新db中表中列的字段。但是,我真的不明白,我如何才能从这个依赖下拉框中获取所选的选项,并在按下表单的提交按钮后将其传递给数据库。

我使用ajax来完成这项任务。我已经学习了一些教程,但它们只展示了如何在不带任何提交按钮的依赖下拉框中动态添加选项。但是,我需要将从下拉框中选择的从属下拉选项的值传递给db,以便在按下submit按钮后更新列。

这是我的控制器:

public function fetch_session() {


                if($this->input->post('subject'))
                {
                    echo $this->Result_Model->fetch_session($this->input->post('subject'));
                }

                if($this->input->post('syllabus'))
                {
                    echo  $this->Result_Model->fetch_syllabus($this->input->post('syllabus'));
                } 

            }

这是我的模型:

public function fetch_session($subject) {
                $this->db->select('session');
                $this->db->group_by('session');
                $this->db->from('student');
                $this->db->where('subject',$subject);
                $query = $this->db->get();

             $output = '<option value="">Select Session</option>';
        foreach ($query->result() as $row) {
  $output .= '<option value="'.$row->subject.'">'.$row->session.'</option>'; 
              }
              return $output;
             }


        public function fetch_syllabus($syllabus) {
            $this->db->select('profile');
            $this->db->group_by('profile');
            $this->db->from('syllabus');
            $this->db->where('subject',$syllabus);
            $query = $this->db->get();
            $output = '<option value="">Select Syllabus</option>';
            foreach ($query->result() as $row) {
  $output .= '<option value="'.$row->subject.'">'.$row->profile.'</option>';
              }
              return $output;
        } 

我的观点是:

<body>
    <div class = "container" align = "center">
    <br><br>

    <?php echo form_open('Result_Controller/fetch_session'); ?> 

    <label>Subject</label>

    <select class="col-sm-2 custom-select custom-select-sm" 
        name="subjects" id="subjects">
    <option value = "">Select Subject</option>
    <option value = "CSE">CSE</option>
        <option value = "Fisheries">Fisheries</option>
        <option value = "Agriculture">Agriculture</option>
    <option value = "NFS">NFS</option>
        </select>                   
        <br><br>

  <label>Session</label>
   <select class="col-sm-2 custom-select custom-select-sm" name="session" id="session">
    <option value="">Select Session</option>  
  </select>
    <br><br>

      <label>Syllabus</label>
      <select class="col-sm-2 custom-select custom-select-sm" name="syllabus" id="syllabus">
      <option value="">Select Syllabus</option> 
      </select>
      <br><br>
      <input type="submit" value="Submit">
       </form>
</div>

<script src = "<?php echo base_url('/js/jquery-3.js') ?>"></script>
<script src = "<?php echo base_url('bootstrap/js/bootstrap.min.js') ?>"></script>

</body>
</html>

<script>
$(document).ready(function() {
    $('#subjects').change(function() {
        var subject = $('#subjects').val();

        if(subject != '')
        {
            $.ajax({
    url:"<?php echo base_url();?>/Result_Controller/fetch_session",
    method: "POST",
    data:{subject:subject},
    success:function(data)
    {                
            $('#session').html(data);
            }
        });
    }

    if(subject != '')
    {
         $.ajax({
        url:"<?php echo base_url();>/Result_Controller/fetch_session",
        method: "POST",
        data:{syllabus:subject},
        success:function(data)
        {
        $('#syllabus').html(data);
          }
        });
            } 
    });
});
</script>

我已经尽我所能去做了,可能会浪费我最后的10个小时。我知道这是一个不完整的,甚至可能是一个错误的代码。但我需要知道,我应该做些什么。我在ci公司工作了一段时间,但我对ajax完全不熟悉。所以,如果有人这么认为,我可能需要先阅读一些资源,请分享一些。我已经读了很多关于这个问题的文章,但是到目前为止没有什么帮助。

提前谢谢…

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/39574
 
1372 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Keith
Reply   •   1 楼
Keith    5 年前

在您的视图中,您应该在从脚本中触发ajax post时删除此部分:

<?php echo form_open('Result_Controller/fetch_session'); ?> </form

然后在脚本中将submit按钮更改为 <input type="button id="submitbtn" value="Submit"> 由于您希望在按下submit按钮后触发更新,所以将保存ajax post的事件更改为 submitbtn 按钮。