【问题标题】:jQuery ajax issue - can't get my function to workjQuery ajax 问题 - 无法让我的功能正常工作
【发布时间】:2012-06-03 22:55:42
【问题描述】:

我正在尝试为 jquery 自定义一个自动完成插件。这应该非常简单。

它应该从 autocomplete.php 中提取名称列表,然后发送到“查找”。当我手动输入它时它可以工作,但是当我尝试使用函数 getnames() 获取名称时它不起作用。我是否正确返回数据? php 文件也可以。

var options, a;

function getnames() {
    $.ajax({
        type:'POST',
        dataType:'json',
        data:{ },
        url:'autocomplete.php',
        timeout:1000,
        success:function (data) {
            return data;
        }
    });
}

// Doesn't work:

// DOC READY
$("#members").one("click", function () {
    options = { 
        lookup:getnames() 
    };
    a = $('#members').autocomplete(options);
});

// Works:

// DOC READY
$("#members").one("click", function () {
    options = { 
        lookup:["name1","name2"]
    };
    a = $('#members').autocomplete(options);
});

自动完成.php

<?
header("Content-Type: application/json", true);
$info = array("name1","name2");
echo json_encode($info);
?>

【问题讨论】:

    标签: jquery ajax


    【解决方案1】:

    您已先获取名称并等待 ajax 响应。当它到达时,您必须启动自动完成。

    例如(未经测试):

    function getnames() {
        $.ajax({
            type:'POST',
            dataType:'json',
            data:{ },
            url:'autocomplete.php',
            timeout:1000,
            success:function (data) {
                options = { 
                    lookup:data
                };
                a = $('#members').autocomplete(options);
            }
        });
    }
    
    $("#members").one("click", function () {
        getnames();
    }
    

    【讨论】:

      【解决方案2】:

      试试这个:

       function getnames() {
              var myData;
              $.ajax({
                  type:'POST',
                  dataType:'json',
                  data:{ },
                  url:'autocomplete.php',
                  timeout:1000,
                  success:function (data) {
                    myData = data;
                  }
              });
              return myData;
          }
      

      【讨论】:

      • 那不是返回undefined吗?
      猜你喜欢
      • 1970-01-01
      • 2020-04-16
      • 1970-01-01
      • 2017-08-24
      • 2015-02-12
      • 1970-01-01
      • 2017-08-05
      • 2012-05-21
      • 1970-01-01
      相关资源
      最近更新 更多