Buenos dias barbel,
En primer lugar, este codigo forma parte de un script entero. No se si entiendo como tienes estructurada el proceso a que nos referimos. A ver si entiendo: te salen unos radio buttons donde seleccionas un producto, cada producto tiene un complemento, un precio, y...... no saco mas conclusiones porque no se de donde viene el post.....
Has complicado incesariamente el codigo php, creo que tres consultas en una pagina php, es excesivo, los mismos resultados se pueden obtener con una consulta. De todas formas piensa que php es un lenguaje que se interpreta en el sevidor y con este codigo php (consultas a la base de datos, bucles,etc..) generas el codigo html que necesitas en tu pagina para funcionar. Una vez la pagina ha "bajado" a tu explorador (cliente), ya no queda nada del script php, lo unico que tienes en el explorador es el codigo html creado y los scripts de javascript para interaccionar con lo que tengas en la pagina. Eso quiere decir que toda la informacion que sacas de la base de datos la tienes que haber sacado antes de bajar la pagina. Si no, tienes que volver a hacer una consulta mediante un formulario, enviando datos con GET o POST, o con ajax -pero este ultimo es cuando tengas claro lo anterior.
De todas formas si lo que quieres es que no se pueda editar la caja donde va a ir el precio final el input en cuestion deberia tener este codigo
Código PHP:
Ver originalecho '<input type="text" id="precio" name="precio" value="'.$f1[precio].'" onlyread>';
el atributo onlyread en los inputs hace que solo se vean y no se puedan cambiar. El id="precio" que he añadido es para poder referenciar el control en la funcion, es interesante que a partir de ahora si vas a emplear javascript etiquetes con name y con id todos los objetos.
en cuanto a la funcion no hace falta que le pases la caja que no se que es, pasale el radio y el precio que supongo que son los valores a sumar
Código Javascript
:
Ver original<script language="javascript">
function CambiaValor(radio,precio){
control=document.getElementById('precio');
control.value=radio+precio;
}
</script>
saludos, si no va por ahí la solucion describe un poco mejor todo el proceso.