Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera já tive problemas com essa função antes, o Willian Bruno que me passou a função, ele me ajudou a arruma-la me ensinando sobre this e etc. Hoje eu consigo ler a função e entender todos os comando mas está dando um erro esquisito vamos lah
<?php
if( $_SERVER['REQUEST_METHOD']=='POST' )
{
$SE_numServico2 = $_POST["SE_numServico"];
$SE_emitente2 = $_POST["SE_emitente"];
mysql_connect("localhost", "root", "");
mysql_select_db("leadersystem");
$sql = "INSERT INTO nf_servicos ( id, SE_unidade, SE_quantidade, SE_discriminacao, SE_valorUnitario, SE_ISS, SE_IRRF, SE_numServico, SE_emitente) VALUES ";
$values = Array();
for( $i=0; $i<count( $_POST['SE_unidade'] ); $i++ )
{
$values[] = "(NULL, '".filter( $_POST['SE_unidade'][$i] )."',
'".filter( $_POST['SE_quantidade'][$i] )."' ,
'".filter( $_POST['SE_discriminacao'][$i] )."' ,
'".filter( $_POST['SE_valorUnitario'][$i] )."' ,
'".filter( $_POST['SE_ISS'][$i] )."' ,
'".filter( $_POST['SE_IRRF'][$i] )."','$SE_numServico2', '$SE_emitente2')";
}
mysql_query ($sql.implode( ',', $values ));
echo "<script>alert('Salvo Com sucesso');</script>";
}
function filter( $str ){
return addslashes( $str );//deixo demais filtros e validações por sua conta
}
?>
<?php
include("seguranca.php"); // Inclui o arquivo com o sistema de segurança
protegePagina(); // Chama a função que protege a página
include("style/funcao.php");
$SE_numServico = $_GET["numServico"];
$SE_emitente = $_GET["emitente"];
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="style/style.css" />
<script type="text/javascript">
$(document).ready(function(){
$('#form_prepare').submit(function(){
var $this = $( this );
var SE_unidade = $this.find("input[name='SE_unidade']").val(),
SE_quantidade = $this.find("input[name='SE_quantidade']").val(),
SE_discriminacao = $this.find("input[name='SE_discriminacao']").val();
SE_valorUnitario = $this.find("input[name='SE_valorUnitario']").val(),
SE_ISS = $this.find("input[name='SE_ISS']").val(),
SE_IRRF = $this.find("input[name='SE_IRRF']").val();
var tr = '<tr>'+
'<td bgcolor="#63B8FF">'+SE_unidade+'</td>'+
'<td bgcolor="#63B8FF">'+SE_quantidade+'</td>'+
'<td bgcolor="#63B8FF">'+SE_discriminacao+'</td>'+
'<td bgcolor="#63B8FF">'+SE_valorUnitario+'</td>'+
'<td bgcolor="#63B8FF">'+SE_ISS+'</td>'+
'<td bgcolor="#63B8FF">'+SE_IRRF+'</td>'+
'<td width ="3px" bgcolor="red" class="excluir"><img src="Style/del.png"></td>'+
'<td style="display:none"><input type="hidden" name="SE_unidade[]" value="'+SE_unidade+'" />'+
'<input type="hidden" name="SE_quantidade[]" value="'+SE_quantidade+'" /></td>'+
'<input type="hidden" name="SE_discriminacao[]" value="'+SE_discriminacao+'" /></td>'+
'<input type="hidden" name="SE_valorUnitario[]" value="'+SE_valorUnitario'" /></td>'+
'<input type="hidden" name="SE_ISS[]" value="'+SE_ISS+'" /></td>'+
'<input type="hidden" name="SE_IRRF[]" value="'+SE_IRRF+'" /></td>'+
'</tr>';
$('.excluir').live('click',function(){
$( this ).parent('tr').remove();
});
$('#grid').find('tbody').append( tr );
return false;
});
});
</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Leader System</title>
</head>
<body onload="horizontal();">
<div id="center">
<form action="" method='post' id="form_prepare">
<center><fieldset>
<label>Unidade: <input type="text" name="SE_unidade" /></label>
<label>Quantidade: <input type="text" name="SE_quantidade" /></label>
<label>Discriminação: <input type="text" name="SE_discriminacao" /></label>
<label>Valor Unitário: <input type="text" name="SE_valorUnitario" /></label>
<label>ISS: <input type="text" name="SE_ISS" /></label>
<label>IRRF: <input type="text" name="SE_IRRF" ></label>
<label><input type="submit" name="ok" value="Ok" /></label>
</fieldset></center>
</form><!-- /form_prepare -->
<form action="" method="post" id="form_insert">
<table id="grid" border = "1" align="center" width ="50%" >
<thead>
<tr>
<th bgcolor="#1874CD" >Unidade</th>
<th bgcolor="#1874CD" width="10%" >Qtde</th>
<th bgcolor="#1874CD" width="10%" >Discriminação</th>
<th bgcolor="#1874CD" width="10%" >V. Unitario</th>
<th bgcolor="#1874CD" width="10%" >ISS</th>
<th bgcolor="#1874CD" >IRRF</th>
</tr>
</thead>
<tbody>
</tbody>
</table><!-- /grid -->
<tr>
<td><input name="SE_emitente" type="text" id="SE_emitente" size="10" maxlength="100"value="<?php
echo $SE_emitente;
?>" > </td>
<td><input name="SE_numServico" type="text" id="SE_numServico" size="10" maxlength="100" value="<?php echo $SE_numServico;?>" ></td>
</tr>
<br>
<center><fieldset ></fieldset>
<label><input type="submit" name="cadastrar" value="Cadastrar" /></label>
</center></form>
</div>
</body>
</html>
quando eu clico no "ok" para adicionar campo a tabela ele cai na condição do IF lah de cima, porém em outra página q uso isso ele n cai na condição clicando no OK (form_prepare). E se eu retirar aquela função do IF que cai no BD simplesmente ele recarrega a página quando clico no (form_prepare) sem acontecer nda, como se ele n funcionasse o $('#grid').find('tbody').append( tr );obrigado bruno vou resumir o outro código aqui
Edit.
PHP e Javascript.
<?php
if( $_SERVER['REQUEST_METHOD']=='POST' )
{
$DE_referencia = $_POST["DE_referencia"];
$DE_numReferencia = $_POST["DE_numReferencia"];
mysql_connect("localhost", "root", "");
mysql_select_db("leadersystem");
$sql = "INSERT INTO despesas ( id, DE_descricao, DE_valor, DE_moeda, DE_referencia, DE_numReferencia) VALUES ";
$values = Array();
for( $i=0; $i<count( $_POST['DE_descricao'] ); $i++ )
{
$values[] = "(NULL, '".filter( $_POST['DE_descricao'][$i] )."',
'".filter( $_POST['DE_valor'][$i] )."' ,
'".filter( $_POST['DE_moeda'][$i] )."','$DE_referencia', '$DE_numReferencia')";
}
mysql_query ($sql.implode( ',', $values ));
echo "<script>alert('Salvo Com sucesso');</script>";
}
function filter( $str ){
return addslashes( $str );
}
?>
<?php
include("seguranca.php"); // Inclui o arquivo com o sistema de segurança
include("style/funcao.php");
protegePagina(); // Chama a função que protege a página
$CO_numReferencia = $_GET['numReferencia'];
?>
<html>
<head>
<iframe style="display:none;" name="recebForm" ></iframe>
<link rel="stylesheet" type="text/css" href="style/style.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#form_prepare').submit(function(){
var $this = $( this );
var DE_descricao = $this.find("input[name='DE_descricao']").val(),
DE_moeda = $this.find("input[name='DE_moeda']").val(),
DE_valor = $this.find("input[name='DE_valor']").val();
var tr = '<tr>'+
'<td bgcolor="#63B8FF">'+DE_descricao+'</td>'+
'<td bgcolor="#63B8FF">'+DE_moeda+'</td>'+
'<td bgcolor="#63B8FF">'+DE_valor+'</td>'+
'<td width ="3px" bgcolor="red" class="excluir"><img src="Style/del.png"></td>'+
'<td style="display:none"><input type="hidden" name="DE_descricao[]" value="'+DE_descricao+'" />'+
'<input type="hidden" name="DE_valor[]" value="'+DE_valor+'" /></td>'+
'<input type="hidden" name="DE_moeda[]" value="'+DE_moeda+'" /></td>'+
'</tr>';
$('.excluir').live('click',function(){
$( this ).parent('tr').remove();
});
$('#grid').find('tbody').append( tr );
return false;
});
});
</script>
HTML
<!----------------------------------------------Começa Auto Tabela ------------------------------------------->
<form action="" method="post" id="form_prepare">
<center><fieldset>
<label>Descricao: <input type="text" name="DE_descricao" /></label>
<label>Valor: <input type="text" name="DE_valor" /></label>
<label>Moeda: <input type="text" name="DE_moeda" size="5" value="U$$">
</label>
<label><input type="submit" name="ok" value="Ok" /></label>
</fieldset></center>
</form><!-- /form_prepare -->
<form action="" method="post" id="form_insert">
<table id="grid" border = "1" align="center" width ="40%" >
<thead>
<tr>
<th bgcolor="#1874CD" >Descricao</th>
<th bgcolor="#1874CD" width="10%" >Moeda</th>
<th bgcolor="#1874CD" >Valor</th>
</tr>
</thead>
<tbody>
</tbody>
</table><!-- /grid -->
<tr>
<td><input name="DE_numReferencia" type="number" style="display:none;" id="DE_numReferencia" size="4" maxlength="10"value="<?php
echo $CO_numReferencia;
?>" > </td>
<td><input name="DE_referencia" type="hidden" id="DE_referencia" size="10" maxlength="10" <?php echo "value='$mes-$year' ";?> ></td>
</tr>
<br>
<center><fieldset style="display: none;"></fieldset>
<label><input type="submit" name="cadastrar" value="Cadastrar" /></label>
</center></form><!-- /form_insert -->Não sei se expliquei bem, o que acontece é q o código n tah gerando a tabela dinâmica.
Mas no segundo código que postei exatamente igual só q com outras variáveis está funcionando normalmente.
ps.
SE_discriminacao = $this.find("input[name=SE_discriminacao]").val();
essa linha está comk ; no final e deve ser , mas ja concertei n é isso
existem vários erros de sintaxe nos seus códigos.
por exemplo: cadê o fechamento do form_prepare submit?
e cadê o return false dele ?
você importou a lib jQuery ?
<script type="text/javascript">
$(document).ready(function(){
alert( 'jQuery iniciado!' );
$('#form_prepare').submit(function(){
alert( 'prepare enviado!' );
vá debugando o teu código.
Aperta Ctrl+Shift+J no Firefox, veja os erros e corrija.
ah sim, dps q postei aqui tmb vi o do Jquery Bruno. Tmb n resolveu, debuguei com o Chrome, vo tentar com o firefox
Hohoho Vlw bruno, na verdade deste primeiro post q eu fiz encontrei 3 erros
1); por ","
2)Importar o Jquery.
3)Faltou concatenar '<input type="hidden" name="SE_valorUnitario[]" value="'+SE_valorUnitario'" /></td>'+ após a variavel.
Os dois primeiros encontrei antes de você postar a dica do Firefox, acontece q esqueci de avisar aqui.
Bom, tópico resolvido.
(n entendi o faltou o return False)
if do php.
mostre o código dessa outra página.
>
E se eu retirar aquela função do IF que cai no BD simplesmente ele recarrega a página quando clico no (form_prepare) sem acontecer nda, como se ele n funcionasse o $('#grid').find('tbody').append( tr );
não entendi absolutamente nada
você está confundindo as coisas, se aparecer o html virtual, então funcionou o append().