Il problema sta nel codice della funzione javascript:
codice:
<script type="text/javascript">
function addchart(){
var b = document.getElementById("elenco").getElementsByTagName("b")
var codice = b[0].innerHTML
alert("Aggiunto al carrello "+codice+"!")
document.getElementById("elenco").action = "addchart.php?codice="+escape(codice)
document.getElementById("elenco").submit()
}
</script>
Così dovrebbe andare. (EDIT: No, non esegue lo stesso il submit
comunque il problema sta nel javascript e non nel codice php)
document.elenco dava errore e bloccava lo script
P.S. se aggiungevi un alert dopo l'assegnazione dell'action ti accorgevi che tale alert non veniva eseguito e che quindi il problema stava in mezzo ai 2 alert 
EDIT 2:Risolto in parte:
codice:
<script type="text/javascript">
function addchart(){
var b = document.getElementById("elenco").getElementsByTagName("b")
var codice = b[0].innerHTML
alert("Aggiunto al carrello "+codice+"!")
document.carrello.action = "addchart.php?codice="+escape(codice)
document.carrello.submit()
}
</script>
Il form si chiama "carrello" e non "elenco".
Elenco è la tabella ed l'evento action e submit li ha il form.
A parte che non viene passato il parametro alla pagina PHP almeno il resto funziona...