Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carcleo

[Resolvido] auto preencher campo do form ao submeter

Recommended Posts

Ola.

 

Tenho o form abaixo.

Nele, tenho dois campos input text.

Um recebe um valor que pode ser alterado

O outro, recebe outro valor, que pode ser alterado.

E tenho um terceiro campo input hidden que, quando submeter o form, gostaria que recebe-se o resultado de um calculo entre os doi campos imput text.

 

Bom, eu fiz uma função e vou postar aqui o código do form

 echo "<form action=\"carrinho.php?op=adicionar\" name=\"adcionaumaum[$id]\"  method=\"post\">";
	 $i=0;		  
 while(list($id, $nome_produto, $preco, $foto, $quantidadecaixa, $descricao, $nome_fornecedor, $razao_fornecedor, $idfornece,$nome_grupo) = mysql_fetch_row($sql2)){		
  echo "<input type=\"hidden\" name=\"id_prod\" value=\"$id\">
	    <input type=\"hidden\" name=\"id_fornece\" value=\"$id_fornece\">";			

   include("../global/funcoes_php/foto_ver.php");
    $icone = "<img border=0 src=../img/saiba_mais.png  alt='Saiba Mais'>";						

 echo "<tr>
          <td align=center>$foto2</td>
		  <td align=let>$nome_produto</td>
		  <td align=let>$nome_grupo</td>
             <td align=center><a href='?acao=saibamais&id=$id&id_fornece=$id_fornece'>$icone</a></td>
		  <td align=right>$quantidadecaixa</td>
		  <td align=left>R$ <input type=\"text\" name=\"{$i}[novo_preco]\" id=\"{$i}[novo_preco]\" value=\"$preco\" size=\"08\" style=\"text-align:right\" onKeyPress=\"return(MascaraMoeda(this,'','.',event))\"></td>
		  <td align=center> <input type=\"text\" name=\"{$i}[novo_imposto]\" id=\"{$i}[novo_imposto]\" value=\"0\" size=\"08\" style=\"text-align:center\" onKeyPress=\"BloqueiaLetras();\"> %</td>
	     <input type=\"hidden\" name=\"{$i}[preco_novo]\" id=\"{$i}[preco_novo]\" value=\"\">
			  <td align=let><input type=checkbox name=\"{$i}[marcado]\"></td>
		  <td align=center valign=\"middle\">
<a href=\"#\" onclick=\"this.href=' carrinho.php?op=adicionar&id_produto=$id&id_fornece=$id_fornece&imposto='+document.getElementById('{$i}[novo_imposto]').value+'&novopreco='+calculo(document.getElementById('{$i}[novo_preco]').value,document.getElementById('{$i}[novo_imposto]').value);\" > Enviar </a>
		  </td>
		</tr>";
             $i++;                                               
			               }	
			echo "
			 <tr>
				 <td align=center valign=\"middle\" colspan=8 height=50>
				   <input type=\"submit\" value=\"Enviar todos os ítens\" onclick=\"calculo2(document.getElementById('{$i}[novo_preco]').value,document.getElementById('{$i}[novo_imposto]').value,document.getElementById('{$i}[preco_novo]').value);\">
				 </td>
			 </tr> 
			</table>
		  </form>
           		";
                             	 }
 ?>

a funçaoq que criei é:

function calculo2(vl1, vl2, campo)
   {	 
      total = ((Number(vl1) *  Number(vl2)) / 100) + Number(vl1);
	  campo =  Number(total);
   }	

Estou chamando ela no botão submit do form assim:

<input type=\"submit\" value=\"Enviar todos os ítens\" onclick=\"calculo2(document.getElementById('{$i}[novo_preco]').value,document.getElementById('{$i}[novo_imposto]').value,document.getElementById('{$i}[preco_novo]').value);\">

Mas, o evento deveria executar a função e entregar o resultado da função ao campo hidem para que o form enviasse o valor do campo hidden para o action. Porem, o valor do hidden esta indo vazio.

 

Onde será que esta o erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o correto, seria assim:

 

function calculo2(vl1, vl2, campo)
   {    
             total = ((Number(vl1) *  Number(vl2)) / 100) + Number(vl1);
                 campo.value =  Number(total);
   }

e então, você envia o objeto do hidden, e não apenas o valor dele.

 

=

\"calculo2(document.getElementById('{$i}[novo_preco]').value,document.getElementById('{$i}[novo_imposto]').value,document.getElementById('{$i}[preco_novo]'));\">

 

porém, já que esse valor nem é mostrado ao usuario, pq você não faz essa conta no php ? depois de receber o form?

será mais seguro até.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu queria fazer mesmo, mas tem mais coisa envolvida.

E ela precisa chegar pronta no carrinho.

Essa conta é feita para cada laço do while.

Então, é interessante que ela chegue no carrinho ja pronta.

Teu código tambem não retornou o resultado.

Deu no mesmo.

Parece que voce só trocou o .value de lugar

 

William, valeu, fiz com php mesmo.

Valeu o refresco de memória.

 

Depois de muito pensar a cabeça ja não ajuda muito né?

 

Valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.