我有以下代码用于从mysql数据库请求数据:
的jquery / JavaScript的:
ajaxGet = function (url) {
var result = $.ajax({
url:url,
type:"POST",
data:{action:'call_this'},
dataType: 'json',
success:function(data) {
}
});
return result;
}
PHP:
<?php
if($_POST['action'] == 'call_this') {
// call waypoint search
include ('link.php');
$sql="SELECT * FROM Waypoints"; //data in table Waypoints
$result = mysqli_query($link,$sql);
$wptdata=array();
while($line = mysqli_fetch_assoc($result)){
$wptdata[] = $line;
};
mysqli_close($link);
echo json_encode($wptdata);
};
?>
要将数据作为javascript数组获取,我希望能够这样说:
wpdata=ajaxGet('datacall.php');
有关如何使其发挥作用的建议?如果我在成功函数中放置alert(data [0] .name),它会得到正确的结果,因此对数据库表的调用肯定是有效的。但我似乎无法弄清楚如何从$ .ajax调用中获取数组。
感谢您提供任何帮助 - 一直在搜索其他问题,而且似乎找到了解决方案。我想保留ajaxGet函数,如果可能的话 - 一旦我开始工作,我将能够更新它,以便灵活地从表中调用什么类型的数据。
答案 0 :(得分:3)
答案是否定的。你无法做到这一点是任何理智的方式。使用回调/承诺 - 这是要走的路!
function ajaxGet(url) {
return $.ajax({
url: url,
type: "POST",
data: {
action: 'call_this'
},
dataType: 'json'
});
}
ajaxGet().done(function(wpdata) {
// use wpdata here
});