私はAJAXから送信されたPHPファイルの変数にアクセスしようとしています。下記のように$ _POST ['category_id']を試しましたが、運がありません。 category_id変数が何らかの値に設定されている場合、私はそれをすでにチェックしました。私はこの問題がデータ型のJSONにあるかもしれないと思いますが、わかりません。PHPでデータを取得Ajaxから送信
if(optimizedDatabaseLoading == 1){
google.maps.event.addListener(map, 'idle', function(){
if(searchClicked != 1){
var ajaxData = {
optimized_loading: 1,
north_east_lat: map.getBounds().getNorthEast().lat(),
north_east_lng: map.getBounds().getNorthEast().lng(),
south_west_lat: map.getBounds().getSouthWest().lat(),
south_west_lng: map.getBounds().getSouthWest().lng(),
};
if(markerCluster != undefined){
markerCluster.clearMarkers();
}
loadData(category_id, "assets/external/data.php", ajaxData);
}
});
}
else {
google.maps.event.addListenerOnce(map, 'idle', function(){
loadData(category_id, "assets/external/data.php");
});
}
function loadData(category_id, url, ajaxData){
console.log('inside:', category_id);
$.ajax({
url: url,
dataType: "json",
method: "POST",
data: ajaxData, category_id: category_id,
cache: false,
success: function(results){
for(var i=0; i <newMarkers.length; i++){
newMarkers[i].setMap(null);
}
allMarkers = results;
placeMarkers(results);
},
error : function (e) {
console.log(e);
}
});
}
data.php
if (!isset($_POST['category_id'])) {
if (!empty($_POST["optimized_loading"])) {
$queryData = mysqli_query($connection, "SELECT id, title, latitude, longitude, address, marker_image FROM items WHERE latitude <= " . $_POST["north_east_lat"] . " AND latitude >= " . $_POST["south_west_lat"] . " AND longitude <=" . $_POST["north_east_lng"] . " AND longitude >= " . $_POST["south_west_lng"]);
} else {
$queryData = mysqli_query($connection, "SELECT id, title, latitude, longitude, address, marker_image FROM items");
}
}
else {
if(!empty($_POST["optimized_loading"])){
$queryData = mysqli_query($connection, "SELECT id, title, latitude, longitude, address, marker_image FROM items WHERE latitude <= " . $_POST["north_east_lat"] . " AND latitude >= " . $_POST["south_west_lat"] . " AND longitude <=" . $_POST["north_east_lng"] . " AND longitude >= " .$_POST["south_west_lng"] . " AND items.item_category_id = " . json_decode($_POST['category_id']));
}
else {
$queryData = mysqli_query($connection, "SELECT id, title, latitude, longitude, address, marker_image FROM items WHERE items.item_category_id = 1" . json_decode($_POST['category_id']));
}
}
あなたのコードは[** SQLインジェクションは、**](https://en.wikipedia.org/wiki/SQL_injection)攻撃に対して脆弱であるプロパティを追加することができます。 [** mysqli **](https://secure.php.net/manual/en/mysqli.prepare.php)または[** PDO **](https://secure.php.net/)を使用してください。 manual/en/pdo.prepared-statements.php)は、[** this post **](https://stackoverflow.com/questions/60174/how-can-i-prevent-sql - インジェクション - イン - php)。 –