Olha, não sei o que pode estar errado, mas é algum detalhe que vc fez aí.
Aqui eu fiz assim, tem um HTML:
<form id="myForm" method="POST">
... alguns campos input type="text" etc e esse botão abaixo:
<input type="button" id="ok" value="OK">
</form>
Nesse mesmo HTML também tem o JavaScript que chama o PHP:
// ao clicar no botão, chama o PHP via AJAX
document.querySelector('#ok').addEventListener('click', function() {
fetch('teste.php', { // estou chamando o teste.php, TROQUE PELO SEU ARQUIVO PHP
method: 'POST',
body: new FormData(document.querySelector('#myForm'))
})
.then(response => response.text())
.then(valor => {
console.log(valor); // só pra ver o valor que voltou, mas pode tirar depois se quiser
if (valor > 0) {
alert('já existe');
} else {
alert('não existe');
}
});
});
Repare que o fetch
está chamando o PHP (que por sua vez está em outro arquivo, no meu caso é o criativo nome de teste.php
).
E no arquivo teste.php
tem o código que consulta o banco e retorna a quantidade de linhas:
//mysql etc...
echo $result->num_rows;
E só. Aqui funcionou, eu clico no botão, ele executa o fetch
, que por sua vez chama o PHP, que retorna o número, e volta para o JS, que verifica o número retornado e dá o alert
.
Não sei o que está errado no seu, então vou dar outra dica: sempre que vc muda algo no seu código e diz que não funcionou, tem que dar mais detalhes, senão ninguém tem como adivinhar o que está acontecendo (por exemplo, se dissesse desde o início que está usando AJAX, eu não teria escrito este post - foi um grande chute, porque eu não sabia que estava usando AJAX).
Tem que falar exatamente o que vc mudou no código, como está testando, qual mensagem de erro que deu e/ou como o programa se comportou. Por exemplo, aqui vc colocou o código PHP e JS tudo junto. Eu presumo que eles não estejam juntos, certo? Se estiverem exatamente assim, não vai funcionar mesmo.
Tente separar da forma que eu fiz acima. E se não funcionar, dê mais detalhes do que vc fez, como testou, e qual foi o erro (mensagens no console, o que exatamente o programa fez, etc). Assim todo mundo que ler consegue testar e tentar descobrir o erro.