当用户在表单上的文本框中键入时如何显示建议或相关名称

时间:2015-11-20 13:57:30

标签: javascript php mysql autocomplete

我有一个PHP和JavaScript的小项目,用于在MySql数据库上注册学生并且它完美,但我需要在用户搜索/输入某个名称时,例如他/她的类型名称如“John”它必须显示与字母“J”相关的名称的下拉,我试过但它不起作用。我会一步一步地告诉你我做了什么。

1:这是html表单,用户用来输入学生Marks,在字段名称是我想要的文本框上的用户类型名称时,它必须显示相关名称:

注意:我会向您展示几个字段。

<form action="#" method="POST" id="name" name="name"   
enctype="multipart/form-
data">
 <div class="row">
<div class="col-sm-6">
    <div class="panel panel-default">

    <div class="panel-body">
    <div class="form_sep">
        <label for="reg_input_name" class="req">Admition Number</label>
         <input type="text" id="idnum" name="idnum" class="form-control"    
            data-required="true" >
        </div>
        <div class="form_sep">
       <label for="reg_textarea_message" class="req">Name</label>
        <input type="text"  name="name" id="name" cols="30" rows="4"  
           class="form-control"></div>
       </div>
        </div>
         </div></div></form>

2:这是我在同一个html表单中放置的JavaScript代码和jQuery插件。

<script src="../jquery-ui.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        $.get('getStudents.php', function(data){
            var students = JSON.parse(data);

            $('#name').autocomplete({
                source: students
            });

        });

    });
</script>

3:这是PHP(getStudents.php)文件。

<?php
include_once "db_connect.php";

 $sql = "SELECT * FROM student_reg";
  $res = mysql_query($sql);
   if($res){
  $students = array();
   while($r = mysql_fetch_array($res)){
    $students[] = $r['sname'];
    }
  echo json_encode($students);
    }else{
  echo mysql_error();
    }
 ?>

注意:当我在php文件上测试/ echo时,它会自动显示所有名称,但是当我将光标放在“name”文本字段并键入时,它不显示下拉建议名称,因为我更喜欢。

1 个答案:

答案 0 :(得分:0)

只是一个想法,但我建议您查看数据表(https://www.datatables.net/)。它可能有一些非常有用的应用程序的应用程序。搜索功能非常接近您的想法。这是一个非常基本的例子,可以使用搜索功能。(https://www.datatables.net/examples/basic_init/zero_configuration.html)。