Je me demande pourquoi cela ne fonctionne pas pour moi. J'ai suivi les instructions d'ici: http://stackoverflow.com/questions/5418179/problem-with-jquery-getjson-retrieve-data-from-controller-code-igniter mais peut-être que je fais quelque chose de mal. J'essaie de créer un script qui peuplera le reste des champs lorsque l'utilisateur sélectionne une valeur dans le menu de sélection.problème avec la réception de données du contrôleur en utilisant .getJSON() et CodeIgniter
Mon script jQuery ressemble à ceci:
$(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'
);
});
});
Ma forme HTML ressemble à ceci:
<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>
Ma fonction de contrôleur (qui fonctionne) ressemble à ceci:
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;
}
Ma fonction de modèle ressemble à ceci:
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());
}
ur encodant deux fois, pas sûr offres de json_encode avec cela ou non, mais encore $ JSON le devrait ne pas être json_encode – Val
Merci beaucoup. Je ne l'ai pas remarqué avant. – sunpietro
cela a-t-il corrigé? – Val