首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >预取准备BloodHound问题

预取准备BloodHound问题
EN

Stack Overflow用户
提问于 2017-06-13 17:56:48
回答 1查看 554关注 0票数 0

我想传递一个GET或POST (像AJAX)值给我的php文件,它返回json作为自动补全。我完全迷惑了,我不知道如何使用prefetch和prefetch方法。以下是我的代码

Html/JS

代码语言:javascript
复制
$(document).ready(function() {

  var communautes = new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('communaute'),
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    prefetch: '/plugins/autocomplete/getCommu.php'
  });

  var peoples = new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('people'),
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    prefetch: {
      url: '/plugins/autocomplete/getPeople.php?query=%QUERY',
      cache: false
    }
  });

  $('.multiple-datasets .typeahead').typeahead({
    highlight: true
  }, {
    name: 'Communautes',
    display: 'communaute',
    source: communautes,
    templates: {
      header: '<h6>Communautés</h6>'
    }
  }, {
    name: 'People',
    display: 'people',
    source: peoples,
    templates: {
      header: '<h6>Personnes</h6>'
    }
  });
});
代码语言:javascript
复制
<div class="row">
  <div class="col-md-4 col-md-offset-3">
    <form action="recherche.php" class="search-form">
      <div class="form-group has-feedback multiple-datasets">
        <input type="text" class="form-control typeahead" name="search" id="search" placeholder="Rechercher" autocomplete="off">
        <span class="glyphicon glyphicon-search form-control-feedback"></span>
      </div>
    </form>
  </div>
</div>
</div>

这是我试图获取$_ get‘’query‘的php文件。

代码语言:javascript
复制
<?php
    require_once $_SERVER['DOCUMENT_ROOT'].'/config.php';
    require_once $_SERVER['DOCUMENT_ROOT'].'/plugins/LDAP/setLDAP.php';
    $ldap=getLDAP();

    $dn = $GLOBALS['userGroup'].",".$GLOBALS['domain'];
    $filter="(|(".$GLOBALS['nom']."=".$_GET['query']."*)(".$GLOBALS['prenom']."=".$_GET['query']."*))";
    $justthese = array($GLOBALS['nom'],$GLOBALS['prenom']);
    $sr=ldap_search($ldap, $dn, $filter, $justthese);
    $info = ldap_get_entries($ldap, $sr);

  if($info['count']!=0){
    for ($i=0; $i < $info['count'] ; $i++) {
      $tab[]['people']=$info[$i][$GLOBALS['prenom']][0]." ".$info[$i][$GLOBALS['nom']][0];
    }
    echo json_encode($tab);
  }
  else echo "Aucune personne trouvée";
?>
EN

回答 1

Stack Overflow用户

发布于 2017-06-13 19:33:43

如果任何人需要解决这个问题,我找到了一个方法来解决这个问题,但是忘记了预取

下面是我的方法(使用远程):

代码语言:javascript
复制
    var peoples = new Bloodhound({

    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('people'),
    queryTokenizer: Bloodhound.tokenizers.whitespace,
      remote: {
      wildcard: '%QUERY',
      url: '/plugins/autocomplete/getPeople.php?query=%QUERY'
      }

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

https://stackoverflow.com/questions/44518160

复制
相关文章

相似问题

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