以下のコードを使用すると、正しい場所を設定するのに問題があります。何らかの理由で、コールバック ファイルで php 定数が認識されないため、残りのコードが機能していません。
html からのスニペット:
<a href="#" class="selectLocation" id="ABC">
.js からのスニペット
var locationID;
$(".selectLocation").click(function(){
locationID = this.id;
setLocation();
});
function setLocation() {
$.ajax({
data: {location: locationID},
success: function (data) {
// do something
};
});
};
// DEFAULT AJAX SETUP
$(function () {
$.ajaxSetup({
type: "POST",
url: "dir/callback.php",
dataType: "json",
cache: "false",
error: function (jqXHR, exception) {
if (jqXHR.status === 0) {
console.log('No connecting.\n Verify Network.');
} else if (jqXHR.status == 400) {
console.log('Bad Request. [400]');
} else if (jqXHR.status == 404) {
console.log('Requested page not found. [404]');
} else if (jqXHR.status == 500) {
console.log('Internal Server Error [500].');
} else if (exception === 'parsererror') {
console.log(jqXHR.responseText);
console.log('Requested JSON parse failed.');
} else if (exception === 'timeout') {
console.log('Time out error.');
} else if (exception === 'abort') {
console.log('Ajax request aborted.');
} else {
console.log('Uncaught Error: ' + jqXHR.responseText);
};
}
});
callback.php のスニペット:
<?php
header("content-type:application/json");
session_start();
require_once ('config.php');
...
$connect->setLocation($_POST['location']);
$_POST['場所']; 以下で定義されている正しい値の代わりに、残りのコードに ABC を送信します。
config.php のスニペット:
define('ABC', 'some location');
私がする場合:
echo (ABC);
コールバック ファイルで、正しい場所の値を取得します。