codeigniter下拉值将视图发送到控制器并显示结果

时间:2015-09-08 08:48:42

标签: php ajax codeigniter

我正在使用codeigniter项目,我遇到了问题。我曾尝试过几次,但仍然没有解决方案。

我的观点有下拉框。它填充了数据。我需要将选定的下拉值发送到控制器然后进行建模。没有刷新视图

我的观点。 :<?php echo base_url(); ?>admin/order/new_order

<form method="post" id="sform" action="">

    <select class="form-control pull-right" name="select_design" style="width: 150px;" required id="select_design" onchange="select_design()">
        <option value="">Select Design..</option>  <?php  foreach ($product2 as $v_product) : ?>
        <option value="<?php echo $v_product->product_code ?>"><?php echo $v_product->product_code ?></option> 

<?php
    endforeach;
?> 
        </select>
    </form>

我尝试使用ajax发送所选值。

<script>

 $("#select_design").change(function() {
     $.ajax({
            url : "<?php echo base_url(); ?>admin/order/new_order", // my controller :<?php echo base_url(); ?>admin/order/new_order
            method: "POST",
            data: "id=" + $(this).val(),
            success: function(response) {
                // handle
            }
      })  
});
</script>

我尝试访问控制器中的POST值

控制器:<?php echo base_url(); ?>admin/order/new_order()

public function new_order()
{
    $select_design=$this->input->post('id'); //

    // and send it to model

    $data['product'] = $this->order_model->get_all_product_info($select_design);
 }

我无法在控制器中访问所选值,请咨询。谢谢

2 个答案:

答案 0 :(得分:0)

我认为您只需要将Ajax脚本更改为类似下面的代码。

  $("#select_design").change(function() {
  var product_code = $("#select_design").val();
  $.ajax({
        type: "POST",
        url: "<?php echo base_url(); ?>" + "admin/order/neworder",
        dataType:'text',
        data:{product_code:product_code},
        success: function() {
        //handle
        }
      });//ajax
 });

答案 1 :(得分:0)

AJAX应该是

<script>
    $(function(){
        $("#select_design").change(function()
        {
            var product_code = $("#select_design").val();

            $.ajax(
                {
                    type:"post",
                    url: "<?php echo base_url(); ?>admin/order/new_order",
                    data:{ product_code:product_code},

                    success:function(data)
                    {

                    }
                });
        });
    });
</script>
  

你的网址conatin admin/order/new_order
  因此,measn order控制器位于admin文件夹

并且在控制器中应该是

public function new_order()
{
    $select_design=$this->input->post('product_code'); // not id

    $data['product'] = $this->order_model->get_all_product_info($select_design);
 }