在jquery中的Ajax,php isset无法检测发布的值

时间:2017-09-28 17:34:03

标签: php jquery ajax

我正在寻求帮助我的代码。我试图获取值,然后通过jquery通过ajax将其发送到PHP脚本。我可以得到价值但我不知道它有什么问题。感谢您的帮助:)

的Ajax

$(".Qty").submit(function(e){
    data_form = parseInt($(this).find(".buyQty").val());
    id = parseInt($(this).attr('name'));
    console.log("id :", id, "Quantity: ", data_form);
    $(this).find(".addCart").val('Adding...');
    $.ajax({
        url: "php/cart_process.php",
        type: "POST",
        data: {'id': id, 'qty': data_form},
        success: function(data){
            $("#cart-info").html(data.items);
            $(".Qty").find(".addCart").val('Add to Cart'); 
            alert("Item added to Cart!");
            if($(".shopping-cart-box").css("display") == "block"){
                $(".cart-box").trigger( "click" );
            }
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
            alert("some error");
        }
    });
    e.preventDefault();
});

PHP

<?php
    if(isset($_POST['id'])){
        $id = $_POST['id'];
        echo "<script>console.log('id received: " .$id. "' );</script>";
    }
?>

1 个答案:

答案 0 :(得分:2)

您的php脚本没有像JS期望的那样返回JSON对象。 您的JS希望data成为JSON对象,并且您尝试获取索引items中的值。 E.G data.items

试试这个。

PHP

<?php
    if(isset($_POST['id'])){
        $output = array();
        $id = $_POST['id'];
        $output['items'] = "<p>id received: {$id} </p>";

        echo json_encode($output);
    }
?>

JQuery的

$(".Qty").submit(function(e){
    data_form = parseInt($(this).find(".buyQty").val());
    id = parseInt($(this).attr('name'));
    console.log("id :", id, "Quantity: ", data_form);
    $(this).find(".addCart").val('Adding...');
    $.ajax({
        url: "php/cart_process.php",
        type: "POST",
        data: {'id': id, 'qty': data_form},
        success: function(data){
            console.log('raw data:');
            console.log(data);

            $("#cart-info").html(data.items);
            $(".Qty").find(".addCart").val('Add to Cart'); 
            alert("Item added to Cart!");
            if($(".shopping-cart-box").css("display") == "block"){
                $(".cart-box").trigger( "click" );
            }
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
            alert("some error");
        }
    });
    e.preventDefault();
});