Return php to JQuery

0

I need a JS variable that gets the result in a JQuery .load from a php file.

JQuery

$.ajax({
 type: "POST",
 url: "_required/sessaoCarrinho.php",
 data: {idProduto:idCampo, novaQuantidade: novaQuantidade},
 success: function(data){
    var subTotal = data;
    return false;
 }
});

alert(subTotal);              

$(".subTotal").html(subTotal.toFixed(2));
$(".totalCarrinho").html(subTotal.toFixed(2));

php

<?php
  session_start();

  $idProduto = $_POST["idProduto"];
  $novaQuantidade = $_POST["novaQuantidade"];

  require_once "../../_controlls/_conexao/Conexao.php";  
  require_once "../../_controlls/_models/Produtos.php";
  require_once "../../_controlls/_daos/ProdutosDao.php";
  require_once "../../_controlls/_util/PhpUtil.php";
  require_once "../../_controlls/_util/Carrinho.php";

  $connection = new Conexao();
  $conexao = $connection->abreConexao();  

  $produtosDao = new ProdutosDao($conexao);  
  $phpUtil = new PhpUtil();
  $carrinho = new Carrinho($produtosDao, $phpUtil);


  $novoProduto = $produtosDao->pesquisaProdutoId($_POST["idProduto"]);

  foreach ($_SESSION["carrinho"] as $key=>$produtoC) {
       if($produtoC[idProdutos] == $novoProduto->getIdProdutos()) {        
           $achou = true;
           $chave = $key;
           $estoque = $novoProduto->getEstoque();
           break;                
       }
   }

   if($achou == true) {
       if ($estoque > $_SESSION["carrinho"][$chave]["quantidade"]) {
          $_SESSION["carrinho"][$chave]["quantidade"] = $novaQuantidade;
       }
   }

   $subTotal = $carrinho->subTotal();

   echo $subTotal;

?>

What am I doing wrong that the variable subtotal in JQuery only arrives not defined

I've tried it in php too, but it did not work.

   $subTotal = $carrinho->subTotal();

   echo "<script>var subTotal=".$subTotal."</script>";
    
asked by anonymous 08.06.2016 / 19:20

1 answer

1

In Javascript:

function produto(data, callback) {
        $.ajax({
            type: "POST",
            url: "_required/sessaoCarrinho.php",
            data: {idProduto: idCampo, novaQuantidade: novaQuantidade},
            dataType: 'json'
        }).done(function (response) {
            callback(response);
        });
    }
    function getProduto(response) {
        $(".subTotal").html(response.subTotal.toFixed(2));
        $(".totalCarrinho").html(response.subTotal.toFixed(2));
    }
    produto(data,getProduto);

OR

$.ajax({
     type: "POST",
     url: "_required/sessaoCarrinho.php",
    data: {idProduto: idCampo, novaQuantidade: novaQuantidade},
    dataType: 'json'
}).done(function (response) {
    $(".subTotal").html(response.subTotal.toFixed(2));
    $(".totalCarrinho").html(response.subTotal.toFixed(2));
});

In PHP:

echo json_encode (array ('subTotal' = > $ subTotal));

    
08.06.2016 / 19:29