JQuery effectue une autocomplète et forme une population à l'aide de JSON

J'ai des problèmes de mise en œuvre de JQuery autocomplete à l'aide de JSON. Fondamentalement, je reçois des données codées JSON de mon serveur (j'utilise le framework php codeigniter).

Le format JSON suit:

[ { "id": "1", "prodname": "Candy", "code": "CND01", "uname": "grams", "pcname": "Sweets" }, { ... } ] 

Ainsi, l'autcomplete se trouve sur le champ Product (prodname) (dans le rectangle rouge de l'image). Lorsque certains produits sont sélectionnés, l'identifiant, le code, la catégorie et l'UOM sont peuplés.

Ce sont mes champs de saisie:

 <input type="text" name="id" value="" id="id" size="3" /> <input type="text" name="code" value="" id="code" size="5" /> <input type="text" name="prodname" value="" id="prodname" size="30" /> <input type="text" name="category" value="" id="category" /></td> <input type="text" name="quantity" value="" id="quantity" size="3" /> <input type="text" name="uom" value="" id="uom" size="5" /> <button name="add" type="button" >Add</button> 

Comment puis-je réaliser cela?

Merci beaucoup d'avance!

Entrez la description de l'image ici

SOLUTION:

 $.ajax({ dataType: 'json', async: false, success: function(data) { projects = data; }, url: '<?php echo site_url('products/autocomplete/no'); ?>' }); //Autocomplete $( "#prodname" ).autocomplete({ source: projects, focus: function( event, ui ) { $( "#prodname" ).val( ui.item.prodname ); return false; }, select: function( event, ui ) { $( "#prodname" ).val( ui.item.prodname ); $( "#id" ).val( ui.item.id ); $( "#code" ).val( ui.item.code ); $( "#category" ).val( ui.item.pcname ); $( "#uom" ).val( ui.item.uname ); return false; } }) .data( "autocomplete" )._renderItem = function( ul, item ) { return $( "<li></li>" ) .data( "item.autocomplete", item ) .append( "<a>" + item.prodname + "</a>" ) .appendTo( ul ); }; 

Essayez quelque chose comme:

 var yourJson = {"id":"1","prodname":"Candy","code":"CND01","uname":"grams","pcname":"Sweets"}; $("#your_form input").each(function() { var element = $(this); element.val(yourJson[element.attr("name")]); });