-2
I’m trying to send a POST to PHP using fetch, the code is like this:
<button onclick="fnConsultarDadosPost()">Consultar com POST</button>
<button onclick="fnConsultarDadosGet()">Consultar com GET</button>
fnConsultarDadosPost = () => {
const nome = document.querySelector('#nome').value
fetch('dados.php', {
method: 'POST',
body: nome,
headers: {
'Content-Type': 'plain/text'
}
})
.then(res => res.text())
.then(res => fnExibirResultado(res))
}
fnConsultarDadosGet = () => {
const nome = document.querySelector('#nome').value
fetch(`dados.php?nome=${nome}`)
.then(res => res.text())
.then(res => fnExibirResultado(res))
}
fnExibirResultado = (dados) => {
document.querySelector('#mensagem').innerHTML = dados
}
My backend is like this:
// Dei um var_dump do $_POST e ele retornou NULL
var_dump($_POST);
if ($_GET) {
$nome = $_GET['nome'];
echo "Conteúdo recebido por GET com sucesso! Seu nome é $nome";
} else if ($_POST) {
$nome = $_POST['nome'];
echo "Conteúdo recebido por POST com sucesso! Seu nome é $nome";
}
Completion:
When I use the GET, He returns me right, but when I use the POST it doesn’t even get into PHP. I’m forgetting something in the syntax of POST?
Very interesting! You helped many people today my friend, thank you for sharing this knowledge. What is the most indicated in these cases? Use this concatenation right there in javascript or recover in PHP as you explained?
– Matheus Ricardo Brunelli
In principle the two work, and not much changes in the sending mechanism. There’s no "better," you have to see which one looks best in the context you’re going to use.
– Bacco