JSONをPHPにポストしようとしています。そこで、デコードしてMySQLデータベースにプッシュする必要があります。PHPへのAJAX POSTは機能していません
これは私の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コード
<?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 ";
}
?>
である - 私はcontentTypeのでJSONデータを掲載しようとした:RESTクライアントアプリケーションからアプリケーション/ JSONをし、それが動作します。しかし、私がJavascriptコードでそれを試しているとき、それはPOSTingではありません。私はコンソールで "dictstring"文字列の値を見ることができます。私は "成功"の警告も見ることができません。興味深いことに、dataType: "json"行を削除すると、 "Success"アラートが表示されます。しかし、私はデータベースの値を見ることができないので、POSTingはまだ起こっていません。
私はここで何が欠けていますか?
なぜ 'dictstring'が文字列ですか?なぜJSON.stringify()に渡していますか? – Andreas
'dictstring'はすでにJSON文字列であるため、' stringify 'する必要はないと思います。 –
独自のJSONを記述しないで、同じ質問を複数回投稿しないでください。 – miken32