猿问

是否可以在弹性搜索索引上使用 AJAX 和 PHP 实现实时搜索

我正在尝试使用 PHP 和 AJAX 制作一个 Web 应用程序。它应该从 Elasticsearch 检索数据而不刷新页面(实时搜索)。是否可以在弹性搜索索引上实现这种检索?为此,我制作了这两个文件:index2.php


<?php

    session_start();

?>


<html>

 <head>

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

  <title>Ajax-Trials</title>

  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>

  <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />

 </head>

 <body>

  <div class="container">

   <br />

   <h2 align="center">Ajax Live Data Search using Jquery, PHP, Elasticsearch</h2><br />

   <div class="form-group">

    <div class="input-group">

     <span class="input-group-addon">Search</span>

     <input type="text" name="search_text" id="search_text" placeholder="Search by Customer Details" class="form-control" />


    </div>

   </div>

   <br />

   <div id="result"></div>

  </div>

 </body>

</html>



<script>

$(document).ready(function(){


 load_data();


 function load_data(query)

 {

  $.ajax({

   url:"fetch2.php",

   method:"POST",

   data:{query:query},

   success:function(data)

   {

    $('#result').html(data);

   }

  });

 }

 $('#search_text').keyup(function(){

  var search = $(this).val();

  if(search != '')

  {

   load_data(search);

  }

  else

  {

   load_data();

  }

 });

});

</script>


慕雪6442864
浏览 59回答 1
1回答

Helenr

您的 JSON 格式显示返回的数据是一个对象。要访问对象值代码如下:foreach($results as $r){&nbsp;$output .= '&nbsp;<tr><td>'.$r->_id.'</td><td>'.$r->_source->name.'</td><td>'.$r->_source->countrycode.'</td><td>'.$r->_source->district.'</td><td>'.$r->_source->population.'</td></tr>';}如您所见,我使用 -> (Object) 而不是 [] (array)
随时随地看视频慕课网APP
我要回答