如何为用户生成建议?

时间:2014-07-30 19:32:27

标签: javascript jquery

好吧,也许这个话题太不明确了。这很难解释。我真正想要的是:

  

当用户在输入字段中输入内容时,我想生成一些建议,就像我们输入“j时Stackoverflow建议 jQuery javascript 一样“即可。

这有什么意义吗?我正在制作一个文具网络应用程序。当用户输入“p”时,需要建议铅笔等?

我想要它,因为它太用户友好了。但是,无法接近它的任何附近。

任何帮助将不胜感激。谢谢。

2 个答案:

答案 0 :(得分:0)

是的,我们做了类似的事情。我可以给你源代码,但令人尴尬的是你甚至没有启动代码并且完全希望别人这样做。无论如何,这是一个完整的代码:

您需要做的就是:(只有百分之一的代码 - 有关详细信息以及下面使用的ID和类,请参阅完整的源代码 - ):

$("#place").keyup(function foo(){
    $("#suggestions").show(200);
    $("#suggestions").html("");
    var thisPlace = $("#place").val();


    var suggestedPlaces = [];
    for(i= 0; i<placeArray.length; i++){
        var pointed = placeArray[i];
        if (pointed.indexOf(thisPlace) >= 0){
                suggestedPlaces.push(placeArray[i]);
        }
    }


    for(i= 0; i<suggestedPlaces.length; i++){
        $("#suggestions").append("<span class='place' id='"+suggestedPlaces[i]+"'>"+suggestedPlaces[i]+"</span>");
    }
    if (suggestedPlaces.length == 0){
            $("#suggestions").html("Sorry. No Results Found");
    }
});

答案 1 :(得分:0)

在jQuery中,你可以使用&#39; autocomplete&#39;功能

以下是链接:http://jqueryui.com/autocomplete/

我告诉你我的例子:

<html>
  <head>
    <script type="text/javascript" src="js/jquery-1.8.2.js"></script>
    <script type="text/javascript" src="js/jquery-ui-1.9.1.js"></script>
  </head>
  <body>
    Town: <input type="text" name="town" id="town" />
  </body>
</html>

<script type="text/javascript">
  jQuery(document).ready(function($) {
    $('#town').autocomplete({source:'search_town.php', minLength:2});
  });
</script>

&#39; search_town.php&#39;:

<?php
  if ( !isset( $_REQUEST['term'] ) ) {
    exit;
  }

  require("dbconnect.php");

  $data = array();
  $term = mysqli_real_escape_string( $conn, $_REQUEST['term'] );

  $sql = "SELECT name, postcode FROM town WHERE lower(name) LIKE lower('$term%') ORDER BY name";
  $result = mysqli_query( $conn, $sql ) or trigger_error( mysqli_error( $conn ) );

  while ( $row = mysqli_fetch_object( $result ) ) {
    $data[] = array(
      'label' => $row->name.' ('.$row->postcode.')',
      'value' => $row->name
    );
  }

  mysqli_free_result( $result );

  echo json_encode( $data );
  flush();
?>