在for循环中下拉菜单,使用ajax请求codeigniter从数据库中检索信息

时间:2013-11-22 16:05:16

标签: jquery ajax codeigniter

我正在一个用户可以选择产品的项目中工作,然后说明会自动显示在输入文本中。

这是我的HTML:

<?php for($i=0; $i<=1; $i++):{ ?>
    <tr class="calc">
        <td class="highlight">
            <select class="selectProduct" id="<?php echo 'product'.$i; ?>" name="<?php echo 'product'.$i; ?>" data-rel="chosen">
                <option>SELECT</option>
                    <?php foreach($product as $item): ?>
                        <option><?php echo $item->product; ?></option>
                    <?php endforeach;  ?>
            </select>
        </td>
        <td class="highlight">
            <input type="text" name="<?php echo 'discription'.$i; ?>" id="<?php echo 'discription'.$i; ?>" value="" class="discription"> 
        </td>
        <td class="highlight">
            <input type="text" name="<?php echo 'cost'.$i; ?>" id="<?php echo 'cost'.$i; ?>" value="" class="val1"/> 
        </td>
        <td class="highlight">
            <select id="<?php echo 'quantity'.$i; ?>" name="<?php echo 'quantity'.$i; ?>" class="val2">
                <option>0</option>
                <?php
                    $q = "0";
                    for($j="0"; $j <="99";$j++){
                        $q = $q + "1";
                        echo '<option>'.$q.'</option>';
                    }
                ?>
            </select>
        </td>
        <td align="center" width="100">
            <span class="total">0  RM</span>
        </td>
    </tr>
<?php }  endfor; ?>   

以下是我的控制器:

public function get_product_discription($product=NULL){

    $product = $this->input->post('product'.$i);
    if($product != "SELECT"){
        $this->load->model('staff_model');
        $data = $this->staff_model->get_product_discription($product);
          echo $data;
        }else{ echo "";
    }

    exit;   
}

这是我的模特:

public function get_product_discription($product=NULL){
    $this->db->select('discription');
    $this->db->from('inventory');
    $this->db->where('product', $product );
    $query = $this->db->get();
    foreach($query->result() as $row) {
        $data =$row->discription;
    }
    return $data;
}

请帮忙吗?

我用过这个脚本:

    $(function() {  //  document.ready
$(".selectProduct").change(function() {
    $.ajax({
        url: "<?php echo base_url(); ?>index.php/home/get_product_discription",
        type: "POST",
        data: {
            selectProduct: $(this).val()
        },
        success: function(data) {
           $('.discription').val(data);
        }
    });
});
});

但它在循环中的所有输入字段中显示描述

1 个答案:

答案 0 :(得分:0)

试试这个

<select class="selectProduct" id="<?php echo 'product'.$i; ?>" name="<?php echo 'product'.$i; ?>" data-rel="chosen" onchange = "get_dist(this,<?php echo $i;?>)">


function get_dist(val , i){
$.ajax({
        url: "<?php echo base_url(); ?>index.php/home/get_product_discription",
        type: "POST",
        data: {
            selectProduct: $(val).val()
        },
        success: function(data) {
           $('#discription'+i).val(data);
        }
    });}

在控制器使用中发布 $ product = $ this-&gt; input-&gt; post('selectProduct');