Alguem poderia me ajudar?
Estou criando um envio via ajax para o php , estou usando o sublime text. sendo que meu dados não estão sendo enviado.
Segue minha linha de codigo…
alguem poderia me ajudar ?
$(document).ready(function(){
$("#adicionar").click(function(){
var idproduto = $('input[name="idprod"]').val();
var qtde = $('input[name="qtd"]').val();
var inputQtd = $('input[name="qtd"]');
$.ajax({
url: 'Classes/Validar_Carrinho.php',
type: 'POST',
data: 'produto='+idproduto+'&quantidade='+qtde+'&acao=add',
success: function(data){}
});
});
});
O $ do $.ajax deveria ficar vermelho, pois seria o encapsulamento da variavel do ajax na página principal estou chamando as bibliotecas assim:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<scrip src="Classes/Javascript.js"></scrip>
Na página Validar_Carrinho.php coloque isso no começo do arquivo:
<?php
var_dump($_POST);
exit;
// restante fica normal...
Depois no ajax, coloque isso:
sucess: function(data) {
console.log(data);
}
Use F12 no navegador para exibir o painel de console, dessa forma você consegue ver o que o php está recebendo e o que retorna para o ajax…
Fala, Thales!
Então, cara, o PHP trabalha com os dados vindos do request de uma forma engraçada.
Como o PHP foi pensado para sistemas online há muito tempo, ele te dá uma mãozinha pra pegar os dados vindos de formulários com as superglobais $_GET
e $_POST
, mas se esses dados não vêm de um formulário, essas variáveis não são preenchidas.
Então, no seu caso, para pegar os dados, você tem duas opções:
- Adicionar o header Content-Type
com o valor application/x-www-form-urlencoded
na sua requisição ajax (pois assim o PHP entende como se estivesse vindo de um form, e preenche essas variáveis pra você);
- Pegar diretamente os dados de php://input
(Ex: $dados = file_get_contents('php://input');
)
Dá um retorno dizendo pra gente se conseguiu, cara.
Abraços.
fALA AI então no meu ta aparecendo isso aqui quando eu uso o var_dump
![](//www.guj.com.br/uploads/default/original/3X/8/c/8cdeaaca06ffaad3527c69f5dd302bd19be7371b.png)
Tipo que está vazio o array, sendo que eu uso url amigavel e eu passo o parametro normalmente
O fato de usar url amigável afetaria se fosse GET.
Tente mandar o atributo data do $.ajax dessa forma e veja o que acontece…
data: {'produto': idproduto, 'quantidade': qtde, 'acao': 'add'},
@cviniciussdias o $.ajax do jquery por padrão envia esse content-type como diz na documentação…