在我的Ajax调用上获取未定义

时间:2015-12-27 07:03:46

标签: javascript php jquery ajax

在尝试记录" data.billAmount"时,我在控制台中未定义声明。为什么会发生这种情况,我该如何解决?

我尝试过做JSON.parse和JSON.stringify,但那些没有用。我尝试使用dataType:' json'但那并没有奏效。我不知道还能尝试什么。我被卡住了。

PHP:

if (@$_POST['action'] == 'addBill')
{
    $billName = $_POST['bill_name'];
    $billAmount = intval($_POST['bill_amount']);
    $data = array(
        'billName' => $billName,
        'billAmount' => $billAmount,
    );
    echo json_encode($data);
    $stmt = $db->prepare("INSERT INTO bills (billName, billAmount) VALUES(?,?)");
    $stmt->bindParam(1, $billName);
    $stmt->bindParam(2, $billAmount);
    $stmt->execute();
}

JavaScript的:

$(".addBill").on("click", function(e) {
    e.preventDefault();
    var billAmount = $('.billAmount').val();
    var billName = $('.billName').val();
    $.ajax({
        type: "POST",
        url: "index.php",
        data: {
            billAmount: billAmount,
            billName: billName,
            action: 'addBill'
        },
        success: function(data) {
            console.log(data.billAmount);
        }
    });
});

1 个答案:

答案 0 :(得分:0)

建议您移动负责将帐单添加到单独文件中的功能。然后对该文件进行AJAX调用,一切都会运行良好,因为如果你想要一个特定的值点请求到特定文件echo那个值为你...

无需寻找解决方法,只需将功能分成较小的容器即可以清晰正确的方式完成。 万一你坚持使用index.php 之后

$stmt->execute();

再加一行

exit();

正如Mohamed-Yousef对问题发表评论。