通过php和$ .ajax将数据传输到带有mysql数据请求的javascript数组

时间:2014-03-09 17:39:24

标签: javascript jquery ajax

我有以下代码用于从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函数,如果可能的话 - 一旦我开始工作,我将能够更新它,以便灵活地从表中调用什么类型的数据。

1 个答案:

答案 0 :(得分:3)

答案是否定的。你无法做到这一点是任何理智的方式。使用回调/承诺 - 这是要走的路!

function ajaxGet(url) {
    return $.ajax({
        url: url,
        type: "POST",
        data: {
            action: 'call_this'
        },
        dataType: 'json'
    });
}

ajaxGet().done(function(wpdata) {
    // use wpdata here
});