Ir para conteúdo

POWERED BY:

Arquivado

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

Arandir Ferreira

Função java script não executa usando formulário dinâmico com php

Recommended Posts

Pessoal, me deparei com um problema ao tentar executar funções java script via inputs gerado por um loop php, infelizmente se o formulário for gerado via loop as funções java script não funcionam, já tentei de várias formas e não encontrei a solução. Se eu coloco os inputs fora do loop funciona. O que pode ser?
Obrigado

 

Código:

<html>

<head>
<title>Cartão de Ponto</title>
<script type=text/javascript language="JavaScript">
function soma(id, it){
var teste = id * it;
document.ponto.total.value = teste * id;
return teste * id;
}
</script>
</head>
<body>
<form name="ponto">
<table>
<?php
$begin = new DateTime( '2014-06-19' );
$end = new DateTime( '2014-07-19' );
echo'<table name=table1>';
echo'<tr>';
echo'<td>Data</td>';
echo'<td>Entrada</td>';
echo'<td>Saida Almoco</td>';
echo'<td>Entrada Almoço</td>';
echo'<td>Saida</td>';
echo'<td>HoraExtra</td>';
echo'</tr>';
$count=0;
while( $end->diff( $begin, true )->days )
{
echo'<tr>';
echo'<td>';
$begin->add( new DateInterval( 'P1D' ) );
printf( '%s<br/>', strftime( '%a, %d/%m/%Y', strtotime( $begin->format( 'Y-m-d' ) ) ) );
echo'</td>';
echo"<td> <input type text name=\"total\" value=\"teste$count\" id=\"teste$count\" onblur=\"soma(3, 4)\">";
echo'</tr>';
$count++;
}
echo $count;
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que mensagem de erro o console está acusando?

Independente disto, não deveria ter um "</td>" após o input na linha

echo"<td> <input type text name=\"total\" value=\"teste$count\" id=\"teste$count\" onblur=\"soma(3, 4)\">";

Este input também esta mal formatado (type text != type="text"). Só esta exibindo um input text porque é o comportamento padrão (se o type não estiver setado, é considerado text).

Alem disso, o ideal é que inputs do tipo text tenham nomes únicos, já que o atributo name é utilizado para agrupar, só faz sentido utiliza-los em checkboxes e radios.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que mensagem de erro o console está acusando?

 

Independente disto, não deveria ter um "</td>" após o input na linha

echo"<td> <input type text name=\"total\" value=\"teste$count\" id=\"teste$count\" onblur=\"soma(3, 4)\">";

Este input também esta mal formatado (type text != type="text"). Só esta exibindo um input text porque é o comportamento padrão (se o type não estiver setado, é considerado text).

 

Alem disso, o ideal é que inputs do tipo text tenham nomes únicos, já que o atributo name é utilizado para agrupar, só faz sentido utiliza-los em checkboxes e radios.

 

 

Rafael, mesmo assim não funciona, o interessante é que se eu usar o mesmo código fora do loop a função executa corretamente. O console não mostra nada já que o evento onblur não funciona para ativar a função..

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta usar a função ob_start do PHP. Pra mim, não faz sentido, mas, não estar funcionando também não me faz muito sentido. Então, não custa tentar :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvi aqui, na verdade havia um erro no código!

 

Ah, valew pela de dica da função ob_start(), eu não conhecia ela, parece muito útil para pegar dados..

 

Obrigado

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.