Salve,
sono quasi arrivato alle battute finali del mio progetto, ed è venuta l'ora dell'ottimizzazione del codice.

Il codice si compone di due parti una php e una jquery:

Jquery:
Codice PHP:
<script type="text/javascript">

    
jQuery(document).ready(function($)

{

$(
'#auto').hide();
$(
'li[id^="lis"]').hide();

myobj = {"116":"monitors_tab","100":"cpu_tab","113":"mouse_tab","114":"mousepad_tab","115":"keyboard_tab","102":"psu_tab","106":"case_tab","103":"dissipatori_tab","105":"exthd_tab","99":"inthd_tab","104":"masterizzatori_tab","107":"ram_tab","108":"aux_tab","109":"mobo_tab","110":"pci_tab","111":"vga_tab","101":"ssd_tab"}; 


$(
'#catId').change(function() { 

   var 
selectVal myobj[$('#catId :selected').val()];  

    $(
'#comps').autocomplete

    { 

        
source"http://tecnomercatino.it/oc-content/plugins/databasehd/codicephp.php?tab="+selectVal

        
minLength1,

        
select: function (eventui) {

        
console.log("Selected: " ui.item.modello);

        $(
'input[id^=meta]').attr('readonly'true);
        
        $(
'.meta_list').hide();

        $(
'input[id^=meta]').css("background-color","#D1FF75");

        if(
selectVal=='cpu_tab'){    

        $(
'input[id="meta_modello"]').val((ui.item.modello).replace(/-/g" "));
        $(
'li[id="lis_modello"]').append(ui.item.modello);
        $(
'li[id="lis_modello"]').show();

        $(
'input[id="meta_anno"]').val(ui.item.anno);
        $(
'li[id="lis_anno"]').append(ui.item.anno);
        $(
'li[id="lis_anno"]').show();

        $(
'input[id="meta_produttore"]').val(ui.item.produttore);
        $(
'li[id="lis_produttore"]').append(ui.item.produttore);
        $(
'li[id="lis_produttore"]').show();

        $(
'input[id="meta_arch"]').val(ui.item.arch);
        $(
'li[id="lis_arch"]').append(ui.item.arch);
        $(
'li[id="lis_arch"]').show();

        $(
'input[id="meta_socket"]').val(ui.item.socket);
        $(
'li[id="lis_socket"]').append(ui.item.socket);
        $(
'li[id="lis_socket"]').show();

        $(
'input[id="meta_corenum"]').val(ui.item.corenum);
        $(
'li[id="lis_corenum"]').append(ui.item.corenum);
        $(
'li[id="lis_corenum"]').show();

        $(
'input[id="meta_threadnum"]').val(ui.item.threadsnum);

        $(
'input[id="meta_l2cache"]').val(ui.item.l2cache);

        $(
'input[id="meta_l3cache"]').val(ui.item.l3cache);

        $(
'input[id="meta_benchurl"]').val(ui.item.bench);

        $(
'input[id="meta_imgurl"]').val(ui.item.imgurl);

        $(
'.itemimg').css('background-image''url(' ui.item.imgurl ')');        

        }           

    }    

    }); 

    $(
'#auto').show();    

});
});

</script> 
E quella php molto semplice:
Codice PHP:
<?php 

function ins_database_hd() { ?>

    <div id="auto">

    <label><?php echo "Componente:"?></label>

    <input type="text" id="comps" />
    
    </div>

    <?php ?>
<?php 
function display_results() { ?>
    <ul class="item_dblist">
    <li id="lis_modello">[b]Modello: [/b]
    <li id="lis_produttore">[b]Produttore: [/b]
    <li id="lis_arch">[b]Architettura: [/b]
    <li id="lis_socket">[b]Socket: [/b]
    <li id="lis_corenum">[b]Numero Core: [/b]
    
    [/list]
    
    <?php ?>
Tralasciando la prima parte, quella in cui viene eseguito "$('#comps').autocomplete" che di fatto fa una query sul database e ritorna un insieme di valori, utilizzati per creare un effetto "autocomplete" per l'appunto.
La cosa che mi preoccupa un po' è invece la seconda parte a partire da "if(selectVal=='cpu_tab')" non vorrei che quella parte di codice sia troppo pesante da far digerire, di fatto fa una serie di stampe e assegna dei valori quindi complessità costante, tuttavia mi convince poco, soprattutto considerando che a database e codice completo saranno diverse pagine di codice .-.

Inoltre io utilizzo i metodi show() e hide() per nascondere e mostrare all'occorrenza gli oggetti, infatti la logica è la seguente se un oggetto esiste nel database allora nascondo i campi di input e mostro la stampa dei valori del database, se non esiste non nascondo i campi e lascio all'utente la possibilità di inserire i proprio valori, faccio la stessa cosa per mostrare e nascondere la stampa dei valori del database

Grazie in anticipo