我有一个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”文本字段并键入时,它不显示下拉建议名称,因为我更喜欢。
答案 0 :(得分:0)
只是一个想法,但我建议您查看数据表(https://www.datatables.net/)。它可能有一些非常有用的应用程序的应用程序。搜索功能非常接近您的想法。这是一个非常基本的例子,可以使用搜索功能。(https://www.datatables.net/examples/basic_init/zero_configuration.html)。