我有以下代码用于从 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 函数 - 一旦我让它工作,我将能够更新它,以便它可以灵活地从表中调用哪种数据。
最佳答案
答案是否定的。你不能以任何理智的方式做到这一点。使用回调/ promise - 这就是正确的方法!
function ajaxGet(url) {
return $.ajax({
url: url,
type: "POST",
data: {
action: 'call_this'
},
dataType: 'json'
});
}
ajaxGet().done(function(wpdata) {
// use wpdata here
});
关于javascript - 通过 php 和 $.ajax 使用 mysql 数据请求将数据传输到 javascript 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22285613/