проблема с получением данных из контроллера с помощью .getJSON () и CodeIgniter - PullRequest
0 голосов
/ 16 мая 2011

Мне интересно, почему это не работает для меня.Я следовал инструкциям отсюда: 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 голосов
/ 17 мая 2011

Вы кодируете его дважды, не уверен, имеет ли дело с этим json_encode, но все равно $ json не должен быть json_encode

...