使用.getJSON()和CodeIgniter从Controller接收数据的问题

时间:2011-05-16 12:25:31

标签: jquery ajax codeigniter getjson

我想知道为什么它对我不起作用。我按照这里的说明:http://stackoverflow.com/questions/5418179/problem-with-jquery-getjson-retrieve-data-from-controller-code-igniter但也许我做错了。当用户从选择菜单中选择一个值时,我正在尝试制作将填充其余字段的脚本。

我的jQuery脚本如下所示:

$(document).ready(function() {
    $('#selprod-1').change(function() {
        var id = $('#selprod-1 option:selected').val();
        $.post(
            '<?php echo $head['site_link'];?>faktura/pobierzProdukt/'+id,
            function(data){
                alert(data);
                $('#pkwiu').val(data.product_pkwiu);
                $('#netto').val(data.product_netto);
                $('#vat').val(data.product_vat);
                $('#brutto').val(data.product_brutto);
                $('#jedn').val(data.product_jedn);
            },
            'json'
        );
    });
});

我的HTML表单如下所示:

<tr>
<td>1</td>
<td><?php echo form_dropdown('produkt[]',$lista,'','id="selprod-1"');?></td>
<td><?php echo form_input(array('name'=>'pkwiu','class'=>'short','readonly'=>'readonly'));?></td>
<td><?php echo form_input(array('name'=>'netto','class'=>'short','id'=>'netto','readonly'=>'readonly'));?></td>
<td><?php echo form_input(array('name'=>'vat','class'=>'mini','id'=>'vat','readonly'=>'readonly'));?></td>
<td><?php echo form_input(array('name'=>'brutto','class'=>'short','id'=>'brutto','readonly'=>'readonly'));?></td>
<td><?php echo form_input(array('name'=>'jedn','class'=>'mini','id'=>'jedn','readonly'=>'readonly'));?></td>
<td><?php echo form_input(array('name'=>'ilosc','class'=>'short','id'=>'ilosc'));?></td>
<td><?php echo form_input(array('name'=>'knetto','class'=>'short','id'=>'knetto','readonly'=>'readonly'));?></td>
<td><?php echo form_input(array('name'=>'kvat','class'=>'short','id'=>'kvat','readonly'=>'readonly'));?></td>
<td><?php echo form_input(array('name'=>'kbrutto','class'=>'short','id'=>'kbrutto','readonly'=>'readonly'));?></td> </tr>

我的控制器功能(有效)如下所示:

public function pobierzProdukt($id)
    {
        $json = json_encode($this->Faktura_model->getProduct($id));
        header('Cache-Control: no-cache, must-revalidate');
        header('Expires: Mon, 26 Jul 2027 05:00:00 GMT');
        header('Content-type: application/json');
        echo $json;
    }

我的模型函数如下所示:

public function getProduct($id)
    {
        $q = 'SELECT product_vat, product_netto, product_brutto, product_jedn
            FROM products
            WHERE product_id="'.$id.'"';
        $w = $this->db->query($q);
        return json_encode($w->row_array());
    }

1 个答案:

答案 0 :(得分:0)

你编码两次,不确定json_encode是否处理,但是$ json不应该是json_encode