Variável vindo no JS não cai no IF do PHP
01/11/2019
0
Opa pessoal, como vai? Então, eu estava precisando fazer com que o usuário confirme que ele quer fazer determinada ação, por isso optei por usar o "confirm" do JS.
Depois de capturado se o usuário confirmou ou não a ação, eu vou testar ela no PHP porém ela não cai no if, se eu printar a varável irá aparecer 1 ou 0, mas esses valores por algum motivo não caem no if.
Depois de capturado se o usuário confirmou ou não a ação, eu vou testar ela no PHP porém ela não cai no if, se eu printar a varável irá aparecer 1 ou 0, mas esses valores por algum motivo não caem no if.
<script type="text/javascript"> if (confirm('Deseja realmente deletar este registro?')) { var confirma = 1; } else { var confirma = 0; } </script> <title></title> <?php session_start(); if (!isset($_SESSION['logado'])) { header("location: index.php"); session_destroy(); die(); } $confirma = "<script>document.write(confirma)</script>"; if ($confirma == 1) { include '../conexao.php'; $num = mysqli_real_escape_string($connect, $_POST['nbrNum']); $nome = mysqli_real_escape_string($connect, $_POST['txtNome']); $sql = "INSERT INTO candidatos(idCandidatos, nome) "; $sql = $sql . " values('$num', '$nome')"; if (mysqli_query($connect, $sql)) { print "Candidato adicionado com sucesso! <br>"; print "Clique <a href='painelAdmin.php'>Aqui</a> para voltar á tela administrativa."; }else{ print "Houve uma falha ao adicionar um novo candidato. <br>"; print "Clique <a href='painelAdmin.php'>Aqui</a> para voltar á tela administrativa."; } }else{ print "<script type='text/javascript'>window.history.back();</script>"; } ?>
Gabriel Prata
Curtir tópico
+ 0
Responder
Post mais votado
22/11/2019
Olá Gabriel !! Tudo bem ??
Seguinte, isso que vc está querendo fazer não é possível... o PHP roda antes do JavaScript e do HTML e, além disso, em máquinas diferentes (PHP no servidor e JS/HTML no navegador que está no cliente), portanto não há como passar variáveis de um código para outro.
Faça a seguinte alteração no seu código e veja o real valor da sua variável $confirma na hora que o PHP roda...
Você irá entender porque o seu if nunca resolve a condição como verdadeira...
Para fazer o que vc está querendo fazer use AJAX.
Achei um POST no link abaixo que explica melhor sobre o que lhe falei...
Espero ter ajudado,
Abraço e bons códigos.
Seguinte, isso que vc está querendo fazer não é possível... o PHP roda antes do JavaScript e do HTML e, além disso, em máquinas diferentes (PHP no servidor e JS/HTML no navegador que está no cliente), portanto não há como passar variáveis de um código para outro.
Faça a seguinte alteração no seu código e veja o real valor da sua variável $confirma na hora que o PHP roda...
... die(); } $confirma = "<script>document.write(confirma)</script>"; var_dump($confirma); if ($confirma == 1) { include '../conexao.php'; $num = mysqli_real_escape_string($connect, $_POST['nbrNum']); ...
Você irá entender porque o seu if nunca resolve a condição como verdadeira...
Para fazer o que vc está querendo fazer use AJAX.
Achei um POST no link abaixo que explica melhor sobre o que lhe falei...
https://pt.stackoverflow.com/questions/25136/igualar-variável-php-a-uma-variável-javascript
Espero ter ajudado,
Abraço e bons códigos.
Jorge Pinto
Responder
Clique aqui para fazer login e interagir na Comunidade :)