返回Javascript变量的AJAX调用

青蛙82

努力将AJAX结果变量返回给JavaScript

请注意,$.ajax下面调用是同步async: false)。

阿贾克斯电话

function getState(callback) {
    $.ajax({
        url: 'getSearchState.php',
        data: { "state": callback },
        type: 'GET',
        async: false,
        success: function(result){
            alert(result);
        },
        error: function(result) {
        alert(result);
      }
    });
}

Ajax PHP

<?php
    // Database Setup and Query

while ($row = $xxxxx->fetch(PDO::FETCH_ASSOC)) {
    $StateVal = $row['State'];
}

return $StateVal;
?>

Javascript调用函数

var URL = District.trim();  
var StateURL = getState(URL);

它可以很好地从函数获取URL可变,但不返回任何内容。

任何帮助将是巨大的!

TJ人群

该代码在客户端和服务器端都存在问题。

客户端:

getState从不退回任何东西,因此您看不到除了undefinedfor之外的任何东西也就不足为奇StateURL

不要使用同步ajax它造成了可怕的用户体验。但是,如果您真的要继续使用它,可以按照以下方法操作:

function getState(state) {
    var result; // <=== Where we'll put our result
    $.ajax({
        url: 'getSearchState.php',
        data: {"state": state},
        type: 'GET',
        async: false,
        success: function(data) {
            // Remember the result;
            result = data;
        },
        error: function() {
            result = /*...whatever you want to use to signal an error */;
        }
    });

    // Return the result
    return result;
}

请注意,我将参数的名称更改为state,因为它不是回调。

但是同样,不要使用同步ajax。而是使用回调或Promise。

承诺:$.ajax 已经返回了承诺,因此直接将其返回:

function getState(state) {
    var result; // <=== Where we'll put our result
    $.ajax({
        url: 'getSearchState.php',
        data: {"state": state},
        type: 'GET',
        async: false,
        success: function(data) {
            // Remember the result;
            result = data;
        },
        error: function() {
            result = /*...whatever you want to use to signal an error */;
        }
    });

    // Return the result
    return result;
}

请注意,我将参数的名称更改为state,因为它不是回调。

但是同样,不要使用同步ajax。而是使用回调或Promise。

承诺:

function getState(state) {
    return $.ajax({
        url: 'getSearchState.php',
        data: {"state": state},
        type: 'GET'
    });
}

用法:

getState(URL)
    .done(function(StateURL) {
        // Use it
    })
    .fail(function() {
        // Failed
    });

打回来:

function getState(state, callback) {
    $.ajax({
        url: 'getSearchState.php',
        data: {"state": state},
        type: 'GET',
        success: function(data) {
            // Call the callbback with the result
            callback(data);
        },
        error: function() {
            // Call the callback with an error
            callback(/*...whatever you want to use tosignal an error */);
        }
    });
}

用法:

getState(URL, function(StateURL) {
    // Use it, check for error
});

服务器端:

正如RiggsFolly指出的那样,您正在从PHP代码中返回一个字符串。但这不会输出。要在客户端使用它,您需要输出它(例如,echo类似的东西)。为了使它易于被JavaScript使用,您可能需要json_encode确保它采用JavaScript可以理解的格式:

echo json_encode($stateVal);

然后在您的success(或done)函数中使用JSON.parse它:

result = JSON.parse(data);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

格式化AJax调用返回的Json并将其分配给javascript变量

来自分类Dev

简单的javascript / ajax调用-不返回状态

来自分类Dev

ajax调用如何将数据返回到变量?

来自分类Dev

ajax调用返回值,但变量为null

来自分类Dev

PHP变量在后续的AJAX调用中返回“默认”

来自分类Dev

基于ajax调用返回的get变量构建查询

来自分类Dev

从ajax调用返回数组

来自分类Dev

jQuery ajax调用变量

来自分类Dev

通过javascript函数通过ajax调用返回数据

来自分类Dev

从函数从JavaScript到servlet的Ajax调用未返回值

来自分类Dev

如何使用Ajax调用将变量从PHP传递到Javascript

来自分类Dev

在javascript中全局使用ajax调用下使用变量

来自分类Dev

从AJAX调用获取结果到javascript变量中

来自分类Dev

从AJAX调用获取结果到javascript变量中

来自分类Dev

使用AJAX设置和返回变量的JavaScript模块

来自分类Dev

如何在下一个ajax调用中从一个ajax调用访问返回的变量

来自分类Dev

从ajax调用返回的值未在Angular js的控制器中设置为变量

来自分类Dev

将应用程序控制器变量设置为AJAX调用返回的结果

来自分类Dev

尝试对PHP进行ajax POST调用以将SQL查询变量返回给jquery时出错

来自分类Dev

等待函数中的Ajax调用结束,然后将对象返回到外部变量

来自分类Dev

映射从 ajax 调用局部变量返回的对象以进行淘汰赛自动完成的问题

来自分类Dev

用Javascript代替++。-当用作函数调用的参数时,该函数调用既更新变量又返回变量

来自分类Dev

jQuery ajax调用返回错误

来自分类Dev

处理从AJAX调用返回的数据

来自分类Dev

jQuery ajax调用返回的数据

来自分类Dev

返回承诺跳过Ajax调用

来自分类Dev

处理来自ajax调用的返回

来自分类Dev

Ajax调用什么都不返回

来自分类Dev

在ajax调用后返回Collection

Related 相关文章

  1. 1

    格式化AJax调用返回的Json并将其分配给javascript变量

  2. 2

    简单的javascript / ajax调用-不返回状态

  3. 3

    ajax调用如何将数据返回到变量?

  4. 4

    ajax调用返回值,但变量为null

  5. 5

    PHP变量在后续的AJAX调用中返回“默认”

  6. 6

    基于ajax调用返回的get变量构建查询

  7. 7

    从ajax调用返回数组

  8. 8

    jQuery ajax调用变量

  9. 9

    通过javascript函数通过ajax调用返回数据

  10. 10

    从函数从JavaScript到servlet的Ajax调用未返回值

  11. 11

    如何使用Ajax调用将变量从PHP传递到Javascript

  12. 12

    在javascript中全局使用ajax调用下使用变量

  13. 13

    从AJAX调用获取结果到javascript变量中

  14. 14

    从AJAX调用获取结果到javascript变量中

  15. 15

    使用AJAX设置和返回变量的JavaScript模块

  16. 16

    如何在下一个ajax调用中从一个ajax调用访问返回的变量

  17. 17

    从ajax调用返回的值未在Angular js的控制器中设置为变量

  18. 18

    将应用程序控制器变量设置为AJAX调用返回的结果

  19. 19

    尝试对PHP进行ajax POST调用以将SQL查询变量返回给jquery时出错

  20. 20

    等待函数中的Ajax调用结束,然后将对象返回到外部变量

  21. 21

    映射从 ajax 调用局部变量返回的对象以进行淘汰赛自动完成的问题

  22. 22

    用Javascript代替++。-当用作函数调用的参数时,该函数调用既更新变量又返回变量

  23. 23

    jQuery ajax调用返回错误

  24. 24

    处理从AJAX调用返回的数据

  25. 25

    jQuery ajax调用返回的数据

  26. 26

    返回承诺跳过Ajax调用

  27. 27

    处理来自ajax调用的返回

  28. 28

    Ajax调用什么都不返回

  29. 29

    在ajax调用后返回Collection

热门标签

归档