ajax nao passa variavel para php
06/11/2014
0
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
Post mais votado
06/11/2014
<!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>
William
Mais Posts
06/11/2014
William
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!
06/11/2014
Manja
<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>
06/11/2014
Felipe Ribeiro
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>
06/11/2014
Manja
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/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);
06/11/2014
Manja
Da uma olhada.
Obrigada por eqto.
Clique aqui para fazer login e interagir na Comunidade :)