首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于获取数据的Ajax -How

用于获取数据的Ajax -How
EN

Stack Overflow用户
提问于 2016-05-18 06:55:33
回答 2查看 1.5K关注 0票数 0

我一直在尝试使用AjAX来获取数据。下面是具有输入值的HTML表单的代码。通过提交按钮将数据值推送到python处理程序。在服务器端,python处理程序将数据存储在数据库中。

现在,我需要首先通过AJAX从数据库获取数据,并显示是否存在现有值。数据由"yes or no“状态组成,非常简单。但是我不知道如何使用ajax获取数据,以及如何根据获取的数据正确设置输入值。问题是,我如何通过Ajax调用处理程序来返回值?

代码语言:javascript
运行
复制
<html>
<script language="javascript" src="https://code.jquery.com/jquery-1.11.1.min.js" type="text/javascript"></script>

<script language="javascript" type="text/javascript">

send_data = function(status) {

    $.ajax({
            url: "/Subscription",
            dataType: "json",
            data: {'status' : status},
            type: "POST",
            cache: false

    }).done(function(data, status, xml) {

         var obj = jQuery.parseJSON(data);
         alert(obj.success);

    }).fail(function(jqXHR, textStatus, errorThrown) {

    }).always(function() {

    });

}


$(document).ready(function() {

  $("#subscription").submit(function() {
    send_data($("#switch-1").prop('checked') ? 'yes' : 'no');
      return false;
  });

});
</script>

</head>
<body>
	
<form id="subscription" action="" method="post">
    <label  class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="switch-1">
    <input type="checkbox" id="switch-1" class="mdl-switch__input" id="status" name="status" />
    <span class="mdl-switch__label">blemtorp@google.com subscription status is: << subscription >> </span>
    <input type="submit" value="Submit" /></label>
</form>
</body>
</html>

非常感谢。任何提示都会很有帮助。

EN

回答 2

Stack Overflow用户

发布于 2016-05-18 07:09:04

要基于用户输入执行异步调用,您必须发出请求,然后显式指定要在请求中执行的操作是成功的、失败的,等等。

例如:

代码语言:javascript
运行
复制
function send_data(shouldRequest, successCallback) {

  // if ...prop('checked'), run ajax request
  if (shouldRequest) {
    $.ajax({
      url: "/Subscription",
      dataType: "json",
      data: {'status' : status},
      type: "POST",
      cache: false
    }).done(function(data, status, xml) {

      // when request completes, run callback function
      successCallback(data);
    });
  }

}

$("#subscription").submit(function() {
  var checked = $("#switch-1").prop('checked');

  var successCallback = function(data) {
    // perform success actions on data here
  }

  send_data(checked, successCallback);
});

如果将successCallback传递给send_data函数,则仅当异步调用成功完成时才能运行该函数。您还可以传入其他函数来处理错误等。

您还可以传入其他函数来处理来自ajax请求的不同结果,比如处理错误的函数。

票数 0
EN

Stack Overflow用户

发布于 2016-05-18 07:19:07

通过在ajax中设置dataType:"json",就不需要在done()回调中使用JSON.parse()

根据您的json使用data.successdata.status

示例json响应{'success':'yes'}{'status':'yes'}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37287509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档