在尝试记录" 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);
}
});
});
答案 0 :(得分:0)
建议您移动负责将帐单添加到单独文件中的功能。然后对该文件进行AJAX调用,一切都会运行良好,因为如果你想要一个特定的值点请求到特定文件echo
那个值为你...
无需寻找解决方法,只需将功能分成较小的容器即可以清晰正确的方式完成。 万一你坚持使用index.php 之后
$stmt->execute();
再加一行
exit();
正如Mohamed-Yousef对问题发表评论。