Home >Web Front-end >HTML Tutorial >Simple text box input automatic prompt_html/css_WEB-ITnose
Simple text box input automatic prompts - when typing, you can directly asynchronously load matching items in the database and then display them.
No database is used here, and arrays are used directly to simulate data storage in PHP.
> Monitor the status of the input box, and when there is a change, immediately send data through ajax and obtain the return value.
Mainly using jQuery encapsulation is very convenient, but it seems that my compatibility is not good... Mainly provide an idea~
js part:
Bring the html part with you so you don’t know which is which
<script type="text/javascript" src="./js/jquery.min.js"></script><script type="text/javascript">$(function(){ $(":button").click(function() { /* Act on the event */ if($(":input").val() != ""){ alert("your name is " + $(":input").val()); } }); $(":input").bind("keyup",function(){ $(".info").empty(); if($(this).val() == "") return; // alert($("#name").val()); $.ajax({ type: 'get', url: 'Automatic_prompt_info.php', data: {name: $("#name").val()}, success: function(data){ // alert(data); var array = new Array(); array = data.split(","); $(".info").append($("<ul></ul>")); for(var i=0;i<array.length-1;i++){ $(".info ul").append($("<li>"+array[i]+"</li>")); } $(".info ul").on("click",function(event){ //事件委托 $("#name").val($(event.target).text()); $(".info").empty(); }) } }); });});</script>
php data part:
<style type="text/css"> html,body,div,form,input,legend,label,button,ul,li{margin: 0;padding: 0;} form,fieldset{border: 0;} .wrap{position:relative;margin: 100px auto; width: 700px; height: 400px;overflow: hidden;} input{width: 300px; height: 36px; border: 3px solid green;border-radius: 3px;font-weight: bold;} button{width: 120px; height: 42px; border: 0;padding: 8px;margin-left:-10px;background-color: green;font-weight: bold;font-size:16px;color: white;cursor: pointer;border-radius: 30px;} .info{position: relative;top: -10px;left: 14px;width: 305px;} ul{list-style: none;} li{padding: 3px 10px; border-bottom: 1px dotted #333;background-color: #ddd; } li:hover{cursor: pointer;background-color: green;} </style></head><body> <div class="wrap"> <h3>文本框文本自动提示(如输入fish jack )</h3> <form name="form" method="get" action=""> <fieldset> <label for="search"></label> <input type="text" name="name" id="name" placeholder="Input your name"> <button type="button" id="button">search</button> </fieldset> </form> <div class="info"> </div> </div>Use simple regular matching.
<?php$names = array('adan','acos','acoss','apple','fish','fisher','fishers','jack','july','boy','boyee','girl','json'); // names$name = $_GET['name']; // name from input label$str = "";$counts = count($names);for($i = 0;$i<$counts;$i++){ if(preg_match("/^$name/", $names[$i])){ //find $str .= $names[$i]; if($i != $counts - 1) $str .= ","; }}//$data = array("A"=>$str)//echo json_encode($data); // send back infoecho $str;?>