ajax nao passa variavel para php
Preciso de socorro urgente aqui.
Codigo da minha pagina principal:
E na minha outra pagina, so tenho isso pra testar:
No meu browser fica assim: http://localhost/Pro...p?btnDesativar=
Por que nao funciona???
Codigo da minha pagina principal:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Salão de Beleza – Madame Nora</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="classes/jquery-2.1.1.js" ></script> <script type="text/javascript" src="classes/jquery-2.1.1.min.js"></script> <script type="text/javascript"> $(function(){ $("#btnDesativar").click(function(event) { var aux = confirm('Deseja Realmente Desativar Conta?'); if(aux == true){ var acao = "1"; var url = "includes/conexaoIndex.php"; xmlHttp.onreadystatechange = stateChanged; xmlHttp.open("POST",url,true); xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlHttp.send("acao="+acao); } }); }); </script> </head> <?php include "/includes/conexaoIndex.php"; ?> <body> <form id="loginUsuario" name="loginUsuario" action="" > <button type="submit" id="btnDesativar" name="btnDesativar" >Desativar conta</button> </form> </body> </html>
E na minha outra pagina, so tenho isso pra testar:
<?php if (isset($_POST['acao'])) { echo "aqui";} ?>
No meu browser fica assim: http://localhost/Pro...p?btnDesativar=
Por que nao funciona???
Manja
Curtidas 0
Melhor post
William
06/11/2014
Tenta assim :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Salão de Beleza – Madame Nora</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="classes/jquery-2.1.1.js" ></script> <script type="text/javascript" src="classes/jquery-2.1.1.min.js"></script> <script type="text/javascript"> $(function(){ $("#btnDesativar").click(function(event) { var aux = confirm('Deseja Realmente Desativar Conta?'); if(aux == true){ $.ajax({ url: 'includes/conexaoIndex.php"', type: 'POST', dataType: 'html', data: {'acao' : acao}, success: function(retorno){ alert(retorno); } }); } }); }); </script> </head> <?php include "/includes/conexaoIndex.php"; ?> <body> <form id="loginUsuario" name="loginUsuario" action="" > <button type="submit" id="btnDesativar" name="btnDesativar" >Desativar conta</button> </form> </body> </html>
GOSTEI 1
Mais Respostas
William
06/11/2014
Basicamente você adicionou um evento para um botão "submit", mas esqueceu que esse tipo de input executa uma submissão de formulário e o seu form está com o method="" isso signfica que será feita uma submissão via GET (padrão quando nenhum valor é informado para o method do form). Mas a sua função AJAX está enviando a requisição via POST.
Para funcionar você deve cancelar o evento default do "submit" que é a submissão do form, adicionando "event.preventDefault();" a sua função ou "return FALSE;":
Uma dica, já que você está usando jQuery então utilize as funções dele para trabalhar com AJAX!
Para funcionar você deve cancelar o evento default do "submit" que é a submissão do form, adicionando "event.preventDefault();" a sua função ou "return FALSE;":
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Salão de Beleza – Madame Nora</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="classes/jquery-2.1.1.js" ></script> <script type="text/javascript" src="classes/jquery-2.1.1.min.js"></script> <script type="text/javascript"> $(function(){ $("#btnDesativar").click(function(event) { event.preventDefault(); var aux = confirm('Deseja Realmente Desativar Conta?'); if(aux == true){ var acao = "1"; var url = "includes/conexaoIndex.php"; xmlHttp.onreadystatechange = stateChanged; xmlHttp.open("POST",url,true); xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlHttp.send("acao="+acao); } }); }); </script> </head> <?php include "/includes/conexaoIndex.php"; ?> <body> <form id="loginUsuario" name="loginUsuario" action="" > <button type="submit" id="btnDesativar" name="btnDesativar" >Desativar conta</button> </form> </body> </html>
Uma dica, já que você está usando jQuery então utilize as funções dele para trabalhar com AJAX!
GOSTEI 0
Manja
06/11/2014
Nem assim amigo....nao deu certo
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="classes/jquery-2.1.1.js" ></script> <script type="text/javascript"> $(function(){ $("#btnDesativar").click(function(event) { event.preventDefault(); var aux = confirm('Deseja Realmente Desativar Conta?'); if(aux == true){ var acao = "1"; var url = "includes/conexaoIndex.php"; xmlHttp.onreadystatechange = stateChanged; xmlHttp.open("POST",url,true); xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlHttp.send("acao="+acao); } }); }); </script> </head> <?php include "/includes/conexaoIndex.php"; ?> <body> <form id="loginUsuario" name="loginUsuario" action="" method="post"> <button type="submit" id="btnDesativar" name="btnDesativar" >Desativar conta</button> </form> </body> </html>
GOSTEI 0
Felipe Ribeiro
06/11/2014
Mesmo com a correção proposta ainda vai ficar faltando alguma coisa..
Segue o código funcional.
Espero ter ajudado.
Qualquer dúvida estamos aí.
Segue o código funcional.
Espero ter ajudado.
Qualquer dúvida estamos aí.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Salão de Beleza - Madame Nora</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript" src="classes/jquery-2.1.1.js" ></script> <script type="text/javascript"> $(function(){ $("#btnDesativar").click(function(event) { var aux = confirm('Deseja Realmente Desativar Conta?'); if(aux == true){ var acao = "1"; var url = "includes/conexaoIndex.php"; xmlHttp = new XMLHttpRequest(); xmlHttp.open("POST",url,true); xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xmlHttp.send("acao="+acao); xmlHttp.onreadystatechange = function() {//Chama uma função quando o estado muda if(xmlHttp.readyState == 4 && xmlHttp.status == 200) { alert(xmlHttp.responseText); } } } }); }); </script> </head> <body> <button type="submit" id="btnDesativar" name="btnDesativar" >Desativar conta</button> </body> </html>
GOSTEI 0
Manja
06/11/2014
Filipe, aqui deu certo graças ao seu retorno de erro achei o problema, mas agora estou com mais uma duvida.
Quando eu chamo a conexaoIndex.php, dentro dela tenho mais duas classes, uma para fazer as conexoes do banco, outra para enviar emails.
O retorno da sua funçao reclama exatamente porque nao encontra essas duas classes. Daí nao passa nem pela "acao".
Agora, como devo tratar elas, se no php sem essa funçao do ajax elas funcionam?
-coloco na primeira pagina?
-coloco dentro da funçao do ajax tb?
-se altero o caminho na conexaoIndex.php, o proprio php reclama.
Quando eu chamo a conexaoIndex.php, dentro dela tenho mais duas classes, uma para fazer as conexoes do banco, outra para enviar emails.
O retorno da sua funçao reclama exatamente porque nao encontra essas duas classes. Daí nao passa nem pela "acao".
Agora, como devo tratar elas, se no php sem essa funçao do ajax elas funcionam?
-coloco na primeira pagina?
-coloco dentro da funçao do ajax tb?
-se altero o caminho na conexaoIndex.php, o proprio php reclama.
include "classes/Conexao.class.php";
include "classes/class.phpmailer.php";
if (isset($_POST['acao']))
{
echo "aqui";
$acao = $_POST['acao'];
/*if ($acao == "1")
{
//INSTANCIANDO UM NOVO OBJETO DO TIPO CONEXÃO
$c = new Conexao();
//CRIANDO O COMANDO SQL
$comandosql = "update clientes set inativo = 1 ";
//REALIZANDO O COMANDO SQL
$c -> criarConsulta($comandosql);
//ATRIBUINDO O RESULTADO DO COMANDO A UMA VARIÁVEL
$resultado = $c -> criarConsulta($comandosql);
include "classes/class.phpmailer.php";
if (isset($_POST['acao']))
{
echo "aqui";
$acao = $_POST['acao'];
/*if ($acao == "1")
{
//INSTANCIANDO UM NOVO OBJETO DO TIPO CONEXÃO
$c = new Conexao();
//CRIANDO O COMANDO SQL
$comandosql = "update clientes set inativo = 1 ";
//REALIZANDO O COMANDO SQL
$c -> criarConsulta($comandosql);
//ATRIBUINDO O RESULTADO DO COMANDO A UMA VARIÁVEL
$resultado = $c -> criarConsulta($comandosql);
GOSTEI 0
Manja
06/11/2014
[img]http://arquivo.devmedia.com.br/forum/imagem/259421-20141106-154006.jpg[/img]
Da uma olhada.
Obrigada por eqto.
Da uma olhada.
Obrigada por eqto.
GOSTEI 0