I have form
which is validated via JavaScript. It's working perfectly, it validates, it sends% pro% and it gives me a .php
saying that it was successful. But I wanted this echo
to be given on the same page as a echo
, or to change the display of an existing alert
. How do I bring this PHP output to the same page? I've seen that I should use Ajax, but I do not quite understand it, I do not know what does what in the AJAX code.
PHP code:
<?php
$pergunta = $_POST ['pergunta'];
$resposta = $_POST ['resposta'];
$dificuldade = $_POST ['dificuldade'];
$desafio = $_POST ['desafio'];
switch ($dificuldade) {
case '1':
$dificuldade = "Facil";
break;
case '2':
$dificuldade = "Medio";
break;
case '2':
$dificuldade = "Dificil";
break;
}
try{
$conexao = new PDO ("mysql:host=localhost; dbname=teocratico;charset=utf8","root","");
} catch (PDOException $erro){
echo "Não foi possível conectar ao banco ". $erro->getMessage();
}
try {
$insert = $conexao-> prepare ("INSERT INTO perguntas (pergunta, resposta, dificuldade, desafio) VALUES (
:pergunta,
:resposta,
:dificuldade,
:desafio
)");
$insert-> bindParam (':pergunta', $pergunta);
$insert-> bindParam (':resposta', $resposta);
$insert-> bindParam (':dificuldade', $dificuldade);
$insert-> bindParam (':desafio', $desafio);
$insert-> execute();
echo "Pergunta enviada com Sucesso";
} catch (Exception $erro) {
echo "Não foi possivel enviar os dados" . $erro->getMessage();
}
?>
Ajax code:
$('#form_pergunta').submit(function(e) {
e.preventDefault();
const pergunta = $('input[name="pergunta"]').val();
const resposta = $('input[name="resposta"]').val();
const dificuldade = $('input[name="dificuldade"]')
const desafio = $('select[name="desafio"]').val();
$.ajax({
url: 'envia.php', // caminho para o script que vai processar os dados
type: 'POST',
data: {pergunta: pergunta, resposta: resposta, dificuldade: dificuldade, desafio: desafio},
success: function(response) {
$('#resp').php(response);
},
error: function(xhr, status, error) {
alert(xhr.responseText);
}
});
return false;
});