DeFigueiredo Posted December 7, 2012 at 02:16 PM Report Share #486147 Posted December 7, 2012 at 02:16 PM (edited) Boas Pessoal, é o seguinte eu criei um botão que ao ser accionado faz duas tarefas que sao accionadas através do evento onclick. <input type="button" name="confirmaRecado" id="confirmaRecado" title="Executado com Sucesso" value="Executado" onclick="if (confirm(\'O recado, '.$num[1].'-'.$recado[0].', foi executado com sucesso?\')) location.href = \'./confirmarRecado.php?confirma=true&idRecado='.$recado[0].'\'; location.href = \'./clienteConfirmaRecados.php?idemp='.$idemp.'\'"/> O código apresentado está dentro do Php, o que faz é quando clica no botao, ele diz que uma determinada coisa, e o seu estado passa a executado, e ao mesmo tempo, chama outro evento que vai mandar um email a dizer que essa determinada coisa foi executada. So que acontece que ele só esta a enviar o email, nao esta a mudar o estado, mas faz a pergunta que lá se encontra, apenas nao muda o estado, mas se eu tirar a parte do evento de chamar a página para enviar o email, ja muda o estado para o que quero. Não sei se estou a fazer algo errado, mas isto já funcionou, mas agora só faz uma das accoes. Apesar de chamar as duas. Edited December 7, 2012 at 02:49 PM by brunoais geshi Sandro Figueiredo _________________________________________________________ "A paciência é uma das coisas que se aprendeu na era do 48k" "O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito" Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 7, 2012 at 02:47 PM Report Share #486152 Posted December 7, 2012 at 02:47 PM (edited) estás a fazer alguma operação errada no script chamado pela acção do evento. para mais resolução é necessário apresentares esse código ps : espera .. agora vi melhor o código. estás fazer o browser chamar dois scripts consecutivamente ??? é claro que o segundo nunca será executado ... Edited December 7, 2012 at 02:53 PM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
DeFigueiredo Posted December 7, 2012 at 02:57 PM Author Report Share #486155 Posted December 7, 2012 at 02:57 PM (edited) Boas... este é um dos ficheiros que é chamado. que é para actualizar o estado... if(isset($_GET["idRecado"]) && isset($_GET["confirma"])){ $idRecado = $_GET["idRecado"]; $confirma = $_GET["confirma"]; foreach($recs->get_Recados() as $recado) if($recado->get_id() == $idRecado){ $idemp = $recado->get_idEmpresa(); if($confirma == "true"){ $rows = $recs->confirmaEstadoRecado($idRecado, "Confirmado"); if($rows){ $recs->actualizaHistoricoRecado($idRecado, $_SESSION["id"], "Execução do recado confirmada pelo Responsavel Recados"); header("Location: detalhesEmpresa.php?idemp=".$idemp); } }else{ $rows = $recs->confirmaEstadoRecado($idRecado, "Cancelado"); if($rows){ $recs->actualizaHistoricoRecado($idRecado, $_SESSION["id"], "Execução do recado cancelada pelo Responsavel Recados"); header("Location: detalhesEmpresa.php?idemp=".$idemp); } } } }else header("Location: home.php"); O outro, que é para enviar o email, é este.... if(isset($_GET["idemp"])){ $idemp = $_GET["idemp"]; foreach($emps->get_empresas() as $empresa) if($empresa->get_id() == $idemp){ $idCliente = $empresa->get_cliente(); $nomeEmp = $empresa->get_nome(); foreach($users->getUtilizadores() as $user){ if($user->get_id() == $idCliente){ $email = $user->get_email(); $cliente = $user->get_nome(); } if($user->get_id() == $_SESSION["id"]) $nome = $user->get_nome(); } if(mail($email, 'recadosFigueiredo - Execução de Recados', 'Caro '.$cliente.', na sequência de ser o cliente associado à empresa, '.$nomeEmp.', da nossa aplicação de gestão, recadosFigueiredo, o Responsável de recados da sua empresa, '.$nome.', vem assim indicar-lhe que mais um recado foi executado com sucesso! Obrigado', 'From: noreply@recadosFigueiredo.pt')) header("Location: detalhesEmpresa.php?idemp=".$idemp); } }else header("Location: home.php"); O que acontece, é que se deixar só o primeiro script, de mudar o estado, funciona na perfeicao, mas como quero que mande tambem o email, adiciono o segundo evento, mas ai o que faz é so mandar o email, embora questione o utilizador se deseja mesmo confirmar a execução da accao, como é pedido através do if confirm, dentro do evento. Edited December 7, 2012 at 07:57 PM by apocsantos geshi Sandro Figueiredo _________________________________________________________ "A paciência é uma das coisas que se aprendeu na era do 48k" "O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito" Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 7, 2012 at 02:59 PM Report Share #486156 Posted December 7, 2012 at 02:59 PM ps : espera .. agora vi melhor o código. estás fazer o browser chamar dois scripts consecutivamente ??? é claro que o segundo nunca será executado ... se queres executar dois pedidos diferentes, deverias usar AJAX. desde modo o browser não salta para o primeiro script ignorando o segundo. IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
DeFigueiredo Posted December 7, 2012 at 02:59 PM Author Report Share #486157 Posted December 7, 2012 at 02:59 PM Mas ele faz os dois. so que apenas executa na perfeiçao o segundo. E pelo que pesquisei é possivel associar 2 eventos ao onclick. Sandro Figueiredo _________________________________________________________ "A paciência é uma das coisas que se aprendeu na era do 48k" "O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito" Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 7, 2012 at 03:14 PM Report Share #486160 Posted December 7, 2012 at 03:14 PM este é o teu código // pedido de confirmação if (confirm('O recado, xpto-xpto, foi executado com sucesso?')) // estás a alterar o location aqui location.href = './confirmarRecado.php?confirma=true&idRecado=xpto'; // estás a sobrepor o location novamente .... location.href = './clienteConfirmaRecados.php?idemp=xpto'; como disse, se queres os dois : se queres executar dois pedidos diferentes, deverias usar AJAX. IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
DeFigueiredo Posted December 7, 2012 at 03:18 PM Author Report Share #486161 Posted December 7, 2012 at 03:18 PM Ah ok... Entendi o que queres dizer, mas e como posso fazer isso com ajax ? Sandro Figueiredo _________________________________________________________ "A paciência é uma das coisas que se aprendeu na era do 48k" "O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito" Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted December 7, 2012 at 03:22 PM Report Share #486163 Posted December 7, 2012 at 03:22 PM estar a explicar tudo é complicado ... o melhor é ler como na net : http://www.tizag.com/ajaxTutorial/ IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
DanielAmorim Posted December 7, 2012 at 03:30 PM Report Share #486164 Posted December 7, 2012 at 03:30 PM Dá uma vista de olhos nesta entrada do stackoverflow: http://stackoverflow.com/questions/950087/include-javascript-file-inside-javascript-file Penso que pode ajudar-te a ultrapassares o teu problema 😉 Daniel Amorim VP for xRTML http://www.xrtml.org http://www.realtime.co Link to comment Share on other sites More sharing options...
DeFigueiredo Posted December 8, 2012 at 01:47 AM Author Report Share #486254 Posted December 8, 2012 at 01:47 AM Boas, o que eu pensei tambem, foi invocar o codigo do segundo fcheiro dentro do primeiro... e assim da mesma forma resolveria-me o problema, porque ao clicar naquele botão ele tem sempre de executar aquelas accoes. Mas nao sei se será correcto. E da maneira que experimentei, ele executou, mas nao invocou o segundo ficheiro. Sandro Figueiredo _________________________________________________________ "A paciência é uma das coisas que se aprendeu na era do 48k" "O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito" Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now