Ir para conteúdo

Arquivado

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

halfar

relacao a ajax e jquery

Recommended Posts

Não sei bem se aqui é local adequeado para minha dúvida. Peço que movam para o local adequado, pois não achei.

tenho uma pagina inicial index.php trabalhando com ajax. Dentro desta index existe uma div que irá exibir o conteudo
de uma outra pagina chamada novos_lancs.php. Então o usuário clica num botão existente na index.php é executado o
codigo ajax que irá exibir a pagina novos_lancs.php dentro da div existente em index.php.
Por sua vez, na pagina novos_lancs.php, que é na realidade um formulário para que o usuário entre com dados, também
existe um botão para executar a pagina xnovos_lancs.php que irá executar o codigo php para gravar os registros
no banco de dados. Só que neste caso, a pagina xnovos_lancs.php é invocada atraves da instrução jquery existente
na pagina novos_lancs.php. Pois bem.
Se eu executar a pagina diretamente no browser, assim http://www.dominio.com.br/novos_lancs.php, tudo funciona corretamente.
Mas como esta pagina novos_lancs.php ela está na realidade dentro de uma div na pagina index.php, aí a coisa não funciona,
apos o usuário clicar no botão, o formulário existente dentro da div some e não grava nada no banco de dados.
Abaixo segue os codigos das páginas mencionadas:
pagina index.php:

<!DOCTYPE HTML>
<html><head>
<script type="text/javascript" src="funcoes/funcoes.js"></script>
<link rel="stylesheet" type="text/css" href="estilos/estilos.css"><title>Controle Financeiro</title>
<script type="text/javascript">
$(document).ready(function(){
$(".titulo")
.css("color", "#f66")
.css("font", "40px arial, sans-serif")
.text("CONTROLE FINANCEIRO")
});
</script>
</head>
<body>
<?php echo "teste"; ?>
<form name="form1" action="">
<div id="menu" name="menu" class="quadro_a"><br>
<input id="nova_despesa" name="nova_despesa" value="novo_lanc" onclick="getDados(this.name);" type="button"><br>
<br>
</div>
<div name="resultado" id="resultado" class="quadro_b">aqui é exibida a pagina novos_lancs.php</div>

pagina novos_lancs.php:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<script type="text/javascript">
// Inicia o jQuery
$(document).ready(function(){
// Cria uma variável que vamos utilizar para verificar se o
// formulário está sendo enviado
var enviando_formulario = false;
var url = "";
// Captura o evento de submit do formulário
$("#form_gastos").submit(function(event){
var dados = jQuery( this ).serialize();
jQuery.ajax({
type: "POST",
url: "xnovos_lancs.php",
data: dados,
success: function( data )
{
}
});
return false;
});
});
</script>
</head>
<body>
<form id="form_gastos" method="post" action="">
<table style="text-align: left; width: 1035px; height: 370px;" border="1" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td>data</td>
<td>tipo de despesa</td>
<td>estabelecimento comercial</td>
<td>descrição</td>
<td>valor</td>
<td></td>
</tr>
<tr>
<td style="width: 100px;"><input name="txtdata1" id="txtdata1" type="text"></td>
<td style="width: 150px;"><input name="txttd1" id="txttd1" type="text"></td>
<td style="width: 200px;"><input name="txtec1" id="txtec1" type="text"></td>
<td style="width: 200px;"><input name="txtd1" id="txtd1" type="text"></td>
<td style="width: 200px;"><input name="txtv1" id="txtv1" type="text"></td>
<td><input value="Enviar" type="submit">
</td>
</tr>
</table>
</form>
xnovos_lancs.php
<?php
include("conexao/conexao.php");
echo "teste";
//recupera os varios campos do formulário (não aparecem todos aqui, pois desnecessários)
$data1 = $_POST["txtdata1"];
$data2 = $_POST["txtdata2"];
e aqui segue o codigo para gravar os registros no BD.
$exec = $conn->prepare($sql);
$exec -> execute();
echo "string 2" . $sql;
if($exec){
echo 'Dados inseridos com sucesso!';
}
else{
print_r($pdo->errorInfo());
echo "erro aqui";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites
consegui resolver, a solução foi retirar o codigo jquery existente em novos_lancs.php e mover para index.php.

Isto deve ser assim, pelo o que entendi, é que a pagina novos_lancs.php é invocada a partir da index.php através do ajax para ser exibida dentro de uma div existente na index.php.





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.