准备 SQL - AJAX return 数据
Prepare SQL - AJAX return Data
我需要一些帮助来设置数据库标记检索。我对到底要传回什么感到有点困惑。这是我目前所拥有的:
返回数据:
["Chatswood NSW AU","Chippendale NSW AU"]
JS:
var opdata = [];
function markers() {
$.post("id.php", {id: <?php echo $id; ?>})
.done(function(data) {
//data is array returned
opdata = data; //Tried this
$(opdata) = data; //Tried this
opdata.push(data); //Tried this
$.each(data, function(i) { //Tried this
opdata.push(data[i]);
});
});
console.log(opdata); //Shows [] empty array regardless what i do
}
PHP:
$arr = array();
while ( $selectData -> fetch() ) {
$arr[] = $address;
}
echo json_encode($arr);
我该如何检索数据?以上 None 有效。
这让我抓狂..我应该只 $.ajax 吗?
对 .done
的调用是异步的,这意味着 .done
在 ajax 调用之前立即完成,而 console.log
在之后立即调用,甚至如果 http 调用还没有完成。
根据您的用例和上下文,您可以在 3 个选项中进行选择以 return opdata
返回到调用函数:
///// OPTION 1: synchronous call
function markersUsingSynchronousCallToAjax() {
var opdata = [];
$.ajax({
type: "POST",
url: "id.php",
async: false, // disable asynchronous call to ajax
data: {id: <?php echo $id; ?>},
success: function(data) {
opdata = data;
}
})
return opdata;
}
var opdata = markersUsingSynchronousCallToAjax();
console.log("using a synchronous ajax call", opdata);
///// OPTION 2: callback
function markersUsingCallback(callback) {
$.post("id.php", {id: <?php echo $id; ?>})
.done(function(data) {
callback(data);
});
}
markersUsingCallback(function(opdata){
console.log("using a callback", opdata);
});
///// OPTION 3: promise
function markersUsingPromise(callback) {
return $.post("id.php", {id: <?php echo $id; ?>});
}
markersUsingPromise().done(function(opdata){
console.log("using a promise", opdata);
});
我需要一些帮助来设置数据库标记检索。我对到底要传回什么感到有点困惑。这是我目前所拥有的:
返回数据:
["Chatswood NSW AU","Chippendale NSW AU"]
JS:
var opdata = [];
function markers() {
$.post("id.php", {id: <?php echo $id; ?>})
.done(function(data) {
//data is array returned
opdata = data; //Tried this
$(opdata) = data; //Tried this
opdata.push(data); //Tried this
$.each(data, function(i) { //Tried this
opdata.push(data[i]);
});
});
console.log(opdata); //Shows [] empty array regardless what i do
}
PHP:
$arr = array();
while ( $selectData -> fetch() ) {
$arr[] = $address;
}
echo json_encode($arr);
我该如何检索数据?以上 None 有效。
这让我抓狂..我应该只 $.ajax 吗?
对 .done
的调用是异步的,这意味着 .done
在 ajax 调用之前立即完成,而 console.log
在之后立即调用,甚至如果 http 调用还没有完成。
根据您的用例和上下文,您可以在 3 个选项中进行选择以 return opdata
返回到调用函数:
///// OPTION 1: synchronous call
function markersUsingSynchronousCallToAjax() {
var opdata = [];
$.ajax({
type: "POST",
url: "id.php",
async: false, // disable asynchronous call to ajax
data: {id: <?php echo $id; ?>},
success: function(data) {
opdata = data;
}
})
return opdata;
}
var opdata = markersUsingSynchronousCallToAjax();
console.log("using a synchronous ajax call", opdata);
///// OPTION 2: callback
function markersUsingCallback(callback) {
$.post("id.php", {id: <?php echo $id; ?>})
.done(function(data) {
callback(data);
});
}
markersUsingCallback(function(opdata){
console.log("using a callback", opdata);
});
///// OPTION 3: promise
function markersUsingPromise(callback) {
return $.post("id.php", {id: <?php echo $id; ?>});
}
markersUsingPromise().done(function(opdata){
console.log("using a promise", opdata);
});