相当新的编程,我无法弄清楚如何做到这一点,或者它可能这样做。我希望能够将我的javascript对象数组插入到myphp管理数据库中。我试图通过json将对象传递给将接收请求并执行insert语句的php代码。我被困了因为我无法获取我的php页面来接收请求。下面的代码显示了我在哪里。
Javascript功能
function submitExpenses(){
var json = JSON.stringify( expenses );
request= new XMLHttpRequest();
request.open("POST", "InsertExpense.php", false);
request.setRequestHeader("Content-type", "application/json");
request.send(json);
}
InsertExpense.php ...
if ($_REQUEST) //Never receives request
{
include('/DB/connect_to_database.php');
$json = json_decode(file_get_contents('php://input'));
foreach ($json as $key => $value) {
print "$key => $value\n";
}
// $sql = "INSERT INTO daily_expense (Amount, Category, Dateof)
// VALUES ()";
// if ($dbh->query($sql) === TRUE) {
// echo "New record created successfully";
// } else {
// echo "Error: " . $sql . "<br>" . $dbh->error;
// }
// $dbh->close();
// }
}
答案 0 :(得分:0)
$ _ POST,$ _GET,$ _REQUEST无法直接解析application / json内容类型。 因此,当您将内容类型作为application / json发送时,所有这三个都保持为null。 移除 if 条件。而是执行以下操作。
在 InsertExpense.php
中 if ($_REQUEST) { // Never full fill the condition because its always null
echo json_encode($_REQUEST);
}
$data = json_decode(file_get_contents('php://input'), true);
if ($data) { // successfully retrive data so its become true.
echo json_encode($data);
}