Caros Amigos Estou iniciando nesta programacao web e apanhando muito com o primeiro programa em PHP, recorrendo a Javascript para tornar os campos dinamicos ... peco perdao pelo detalhamento do problema, vamos la: A ideia é muito simples: listo varios itens que tem no BD, trazendo a quantidade e o usuario digita o valor unitario e aparece o valor total (qtde x unit) em outro campo, na mesma linha. So que eu não tenho ideia de quantas linhas eu terei na tela. Um pedido pode ter 1 linha, o outro 20 linhas .. então, no PHP eu usei o while e fui criando as linhas do formulario, onde cada linha tem os 3 campos: qtde (preenchido, disable), unitario (para digitacao) e valor total (que retorna a multiplicacao, disable) para cada linha, e aqui é importante, eu gerei os nomes de maneira automatica: cpo_qtde1, cpo_unit1, cpo_tot1 para a primeira linha cpo_qtde2, cpo_unit2, cpo_tot2 para a segunda linha cpo_qtde5, cpo_unit5, cpo_tot5 para a quinta linha e assim por diante usei o tabindex para so passar nos cpo_unitXXX ao sair do cpo_unit1, temos o evento onBlur=Calcula(variavel); esta variavel é o numeral que diferencia cada linha, 1, 2 .. 5 .. etc .. tambem gerado la no php então tenho para o item 1 ... onBlur=Calcula(1); para o item 2 ... onBlur=Calcula(2); para o item 5 ... onBlur=Calcula(5); meu formulario tem o nome de frm_itens, e no javascript fiz assim para o primeiro item: view plaincopy to clipboardprint? <script type="text/javascript">
function Calcula(linha_controle)
{
if (linha_controle==1)
{
wcpo1_qtde = document.frm_itens.cpo_itmqtde1.value;
wcpo1_unit = document.frm_itens.cpo_itmvalue1.value;
wcpo1_tot = wcpo1_qtde * wcpo1_unit;
document.frm_itens.cpo_itmtot1.value=wcpo1_tot;
}
}
</script> Eis o problema ! Eu não posso criar um bloco IF para cada registro que eu tiver na tela. Posso ter 2, 10, 50 ... posso ate criar 100 blocos de IF e deixar um aviso caso dê o azar de ter 101 (é uma solucao, claro). Mas acho que posso tornar a funcao acima bem generica. Basicamente, eu precisaria tornar inteligentes as 3 linhas que fazem referencia ao imtqtde1, itmvalue1 e itmtot1 não consegui automatizar isto e tirar finalmente o if (linha_controle==1) da rotina. Por ser um programador muito velho, risos, estou perdido nesta juncao de HTML, PHP, Javascrit, SQL, CSS e não sei mais o que vou encontrar pela frente... Grande Abraco a Todos Manuel