【问题标题】:Codeigniter select box value not pass to controller using ajaxCodeigniter 选择框值不使用 ajax 传递给控制器
【发布时间】:2018-01-08 15:32:39
【问题描述】:

我正在尝试将 select-box 值传递给 controller 但值未传递 这是我的代码

<select class="form-control" name="product_id" onchange="getProduct(this.value)">
    <option>--Select Payment--</option>
    <option value="<?php echo $product['sno']; ?>"><?php echo $product['product_name']; ?></option>
</select>
<script type="text/javascript">
function getProduct(product_id) {

    $.ajax({
        url: "<?php echo base_url(); ?>customer_order/getproduct",
        type: "POST",
        data: {
            id: product_id,
        }
    }).done(function(data) {
        $('product_id').val(data);
        alert(product_id);
    });
}

   </script>

控制器:

class Customer_order extends CI_Controller {
  function getproduct(){
   $data = $this->input->post('id');
   echo '<script type="text/javascript">alert("'.$data.'");</script>';
   $this->load->view('create_customer_order',$data);
  }
}

如何使用 ajax 将值传递给控制器​​?

【问题讨论】:

    标签: ajax codeigniter dropdown


    【解决方案1】:

    请在您的代码中做一些更改,如下所示

    <select class="form-control" name="product_id" id="product_id">
        <option>--Select Payment--</option>
     <?php foreach($product as $prod){ ?>
    
         <option value="<?php echo $prod['sno']; ?>"><?php echo $prod['product_name']; ?></option>
    
    <?php } ?>
    
    </select>
    
    
    
    
    
    <script>
    $('#product_id').on('change', function(){
       var proId = $('#product_id option:selected').val();
     if(proId != null){
    
        var url = "<?php echo base_url(); ?>customer_order/getproduct";
                var proResult = $.ajax({
                                                url: url,
                                                data: {'id': proId },
                                                type: 'post',
                                                dataType: 'json'
                                            });
                    proResult.done(function(data){
    //                 console.log('data', data);
    //                 alert(data);
    //                 Here..Do something as you wish
    
                    });
     }
    });
    
    </script>
    

    我认为这只是参考代码,用于了解如何将数据传递给控制器​​并使用 ajax 和 json 将结果返回到视图页面

    在控制器中应该有函数

    <?php
    
    if (!defined('BASEPATH'))
        exit('No direct script access allowed');
    
    class Customer_order extends CI_Controller {
    
        function __construct() {
            parent::__construct();
    
    
        }
    
        function getproduct() {
         $data = $this->input->post('id', true);
         header('Content-Type: application/x-json; charset=utf-8');
         echo(json_encode($data));
    
        }
    } ?>
    

    我希望这可以帮助你。谢谢!

    【讨论】:

    • 感谢您的回答阿卜杜勒萨拉姆
    • 欢迎您的 Ramesh...如果这有帮助,请勾选正确答案..thnks
    • 当然,我会检查并告诉你。而且我只是点击投票给你的答案
    • 兄弟不工作如何检查控制器中的数据传递与否
    • 只需取消注释 console.log('data', data);在脚本中,并检查数据
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多