Ir para conteúdo

POWERED BY:

Arquivado

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

Naelson

Como inserir uma função no input...

Recommended Posts

Olá a todos,

Depois de varias tentativas resolvi recorrer aos colegas foristas, tenho a seguinte situação:

 

Esse é o campo Prazo

 

<tr>
			<td class="KT_th"><label for="Prazo_<?php echo $cnt1; ?>">Prazo:</label></td>
			<td><input type="text" name="Prazo_<?php echo $cnt1; ?>" id="Prazo_<?php echo $cnt1; ?>" value="<?php echo KT_escapeAttribute($row_rsnotificacao['Prazo']); ?>" size="2" maxlength="2" />
			  <?php echo $tNGs->displayFieldHint("Prazo");?> <?php echo $tNGs->displayFieldError("notificacao", "Prazo", $cnt1); ?></td>
		  </tr>

Esse é o campo Resposta

Preciso que ao sair dele, ao digitar a resposta, se calcule o

valor do campo Revelia, como.

 

Resposta + Prazo = Revelia.

 

<td class="KT_th"><label for="Resposta_<?php echo $cnt1; ?>">Resposta:</label></td>
			<td><input type="text" name="Resposta_<?php echo $cnt1; ?>" id="Resposta_<?php echo $cnt1; ?>" value="<?php echo KT_formatDate($row_rsnotificacao['Resposta']); ?>" size="10" maxlength="22"  onchange="<?php echo $row_rsnotificacao['Revelia'] = somar_dias_uteis("".$row_rsnotificacao['Resposta']."","".$row_rsnotificacao['Prazo']."",'');?>" />
			  <?php echo $tNGs->displayFieldHint("Resposta");?> <?php echo $tNGs->displayFieldError("notificacao", "Resposta", $cnt1); ?></td>
		  </tr>

Esse é o campo Revelia ( que preciso que seja o calculo do prazo + resposta.

 

<tr>
			<td class="KT_th"><label for="Revelia_<?php echo $cnt1; ?>">Revelia:</label></td>
			<td><input type="text" name="Revelia__<?php echo $cnt1; ?>" id="Revelia_<?php echo $cnt1; ?>" value="<?php echo KT_formatDate($row_rsnotificacao['Revelia']);?>" size="10" maxlength="22"/>
			  <?php echo $tNGs->displayFieldHint("Revelia");?> <?php echo $tNGs->displayFieldError("notificacao", "Revelia", $cnt1); ?></td>
			  </td>
		  </tr>

essa é a parte que chama a função.

Ex.

<?php somar_dias_uteis('09/04/2009','15','')?>

<?php somar_dias_uteis('Resposta','Prazo','')?>

já tentei todos os onfocus, onblur, onchange.

 

Onde eu coloco a função, já tentei de varias formas e não consegui, esse campo calculado.

Poderiam me dar uma ajuda

 

Um abraço a todos

 

Naelson

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola a todos,

Complementando o raciocinio, assim executa o função, só que executa direto, eu preciso usar algum comando que execute somente ao alterar outro valor.

Preciso usar tipo onchange, onblur, só que não consigo aplicar estes comandos.

 

Um abraço a todos

 

Naelson

 

 

<tr>

<td class="KT_th"><label for="Revelia_<?php echo $cnt1; ?>">Revelia:</label></td>

<td><input type="text" name="" id="Revelia_<?php echo $cnt1; ?>" value="<?php echo somar_dias_uteis('09/04/2009','15','');?>" size="10" maxlength="22" />

<?php echo $tNGs->displayFieldHint("Revelia");?> <?php echo $tNGs->displayFieldError("notificacao", "Revelia", $cnt1); ?></td>

</td>

</tr>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite a todos.

 

Naelson, como eu não conheço o PHP, porém vou passar a voce uma página com a função JavaScript que vai executar o cálculo que é bem simples e os componentes HTMLs necessários, depois voce faz as modificações necessárias com comando PHP. O nosso amigo Anderson já deu uma dica de como se faz, só que ele não completou a dica, ficou faltando a função.

 

<html>
	  <head>
		  <title>Cálculo Revelia</title>
		  <!-- Aqui voce inicia a scripting JavaScript dentro do cabeçalho -->
		  <script language="javascript">
				 function Calculo() {
						var pz = document.MeuForm.prazo;
						var rsp = document.MeuForm.resposta;
						if (pz != null && rsp != null) {
							 document.MeuForm.revelia.value = pz + rsp;
						} else {
							 document.MeuForm.revelia.value = 0;
						}
				}
		  </script>
	  </head>
	  <body>
		 <form name="MeuForm" method="post" >
		  <table border="0">
			   <tr>
				   <td>
						<label>Prazo</label><br />
						<input type="text" name="prazo" />
					</td>
					<td>
						<label>Resposta</label><br />
						<input type="text" name="resposta" onblur="Calculo()" />
					</td>
			   </tr>
			   <tr>
				   <td>
						<label>Revelia</label><br />
						<input type="text" name="revelia" />
				   </td>
				</tr>
		  </table>
		</form>
	 </body>
  </html>

Repare que no Input Text nominado "resposta" eu utilizo o evento "onblur", que chamará a função "Calculo()" do JavaScript no momento em que ele perder o foco, eu prefiro utilizar esse evento, entretanto voce pode também utilizar o evento "onchange" sugerido pelo nosso amigo Anderson.

 

Todo esse procedimento é executado no lado do cliente evitando assim que voce utilize enviar uma request (requisição) ao Servidor para executar um simples cálculo no Server Side, e depois enviar um Response (resposta) para completar a sua página para depois enviar um novo request com os dados ao Servidor para armazenar supondo eu em um banco de dados. digo isto porque o PHP é executado no Servidor, e era exatamente o que nosso amigo André Molin estava tentando te explicar, ou seja, as funções PHP que voce estava tentando executar iria fazer exatamente isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Discorpio,

Muito obrigado pela atenção, vou estudar isso com muito cuidado e vou testar depois comento o resultado.

 

Um abraço

 

Naelson

 

Boa noite a todos.

 

Naelson, como eu não conheço o PHP, porém vou passar a voce uma página com a função JavaScript que vai executar o cálculo que é bem simples e os componentes HTMLs necessários, depois voce faz as modificações necessárias com comando PHP. O nosso amigo Anderson já deu uma dica de como se faz, só que ele não completou a dica, ficou faltando a função.

 

<html>
	  <head>
		  <title>Cálculo Revelia</title>
		  <!-- Aqui voce inicia a scripting JavaScript dentro do cabeçalho -->
		  <script language="javascript">
				 function Calculo() {
						var pz = document.MeuForm.prazo;
						var rsp = document.MeuForm.resposta;
						if (pz != null && rsp != null) {
							 document.MeuForm.revelia.value = pz + rsp;
						} else {
							 document.MeuForm.revelia.value = 0;
						}
				}
		  </script>
	  </head>
	  <body>
		 <form name="MeuForm" method="post" >
		  <table border="0">
			   <tr>
				   <td>
						<label>Prazo</label><br />
						<input type="text" name="prazo" />
					</td>
					<td>
						<label>Resposta</label><br />
						<input type="text" name="resposta" onblur="Calculo()" />
					</td>
			   </tr>
			   <tr>
				   <td>
						<label>Revelia</label><br />
						<input type="text" name="revelia" />
				   </td>
				</tr>
		  </table>
		</form>
	 </body>
  </html>

Repare que no Input Text nominado "resposta" eu utilizo o evento "onblur", que chamará a função "Calculo()" do JavaScript no momento em que ele perder o foco, eu prefiro utilizar esse evento, entretanto voce pode também utilizar o evento "onchange" sugerido pelo nosso amigo Anderson.

 

Todo esse procedimento é executado no lado do cliente evitando assim que voce utilize enviar uma request (requisição) ao Servidor para executar um simples cálculo no Server Side, e depois enviar um Response (resposta) para completar a sua página para depois enviar um novo request com os dados ao Servidor para armazenar supondo eu em um banco de dados. digo isto porque o PHP é executado no Servidor, e era exatamente o que nosso amigo André Molin estava tentando te explicar, ou seja, as funções PHP que voce estava tentando executar iria fazer exatamente isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde a todos.

 

Naelson, deixa eu fazer uma pequena correção no meu código JavaScript.

 

Onde voce encontrar:

 

var pz = document.MeuForm.prazo;
   var rsp = document.MeuForm.resposta;

Substitua por este:

 

var pz = document.MeuForm.prazo.value;
   var rsp = document.MeuForm.resposta.value;

Desculpe-me o erro.

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.