我想發佈一個JSON到PHP,它應該被解碼並推送到MySQL數據庫。AJAX發佈到PHP不起作用
這是我的JavaScript代碼。
var dictstring = "{sensorid: \""+ name +"\", x: " +pos.x +" ,y: "+pos.y+"}";
console.log(dictstring);
$.ajax({
type: "POST",
contentType: 'application/json; charset=utf-8',
dataType: "json",
url: "myfile.php",
data: JSON.stringify(dictstring),
success: function(data){
alert('Success');
},
error: function(e){
console.log(e.message);
}
});
,這是我的PHP代碼
<?php
$jsonData = file_get_contents('php://input');
$data_back = json_decode($jsonData);
$unit = $data_back->{"sensorid"};
$x_axis = $data_back->{"x"};
$y_axis = $data_back->{"y"};
// Create connection
$con=mysqli_connect("xxxxxxx:xxxx","xxxxx","xxxx","xxxxxxxx");
// Check
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
//Insert Values
$sql_hm = "INSERT INTO xxxx(unit, x_axis, y_axis)
VALUES ('$unit', $x_axis, $y_axis)";
if ($con->query($sql_hm) === TRUE) {
echo "values inserted successfully";
} else {
echo "No data ";
}
?>
我知道PHP的一部分工作 - 我試圖在張貼的contentType JSON數據:從REST客戶端應用程序的應用程序/ JSON和它的作品。但是當我用我的Javascript代碼嘗試它時,它不是發佈。我可以在控制檯中看到「dictstring」字符串值。我也看不到「成功」警報。有趣的是,如果我刪除dataType:「json」行,則會顯示「Success」警報。但是,POSTing仍然沒有發生,因爲我看不到數據庫中的值。
我在這裏錯過了什麼?
爲什麼'dictstring'是一個字符串?爲什麼你將它傳遞給'JSON.stringify()'? – Andreas
我認爲你不需要'stringify'因爲'dictstring'已經是一個JSON字符串。 –
不要編寫自己的JSON,也不要多次發佈相同的問題。 – miken32