如何为在输入时执行搜索的现有代码创建搜索按钮? php/javascript/mysql
Posted
技术标签:
【中文标题】如何为在输入时执行搜索的现有代码创建搜索按钮? php/javascript/mysql【英文标题】:How to create search button for existing code which execute search on enter press? php/javascript/mysql 【发布时间】:2017-03-18 00:43:34 【问题描述】:我有一个网站,其他人一直在为我编写代码,我正在尝试了解如何改变一个简单的事情。
我不是webdeveloper,但最近几天我对php、mysql和javascript有点熟悉(我熟悉java)。
****问题:**** 在我的网站上,我有一个搜索表单,该表单没有搜索按钮(搜索功能在输入按下或从自动完成中选择时工作)。如何将其更改为仅与搜索按钮一起使用?
使用 CodeIgniter 框架开发的网络。
这是控制器的样子:
public function searchGym()
if($_POST)
$gym_name=$_POST['gym_name'];
$gym_name=trim($gym_name," ");
$data['details']=$this->user_model->getGymByName($gym_name);
$data['gym_name']=$gym_name;
$this->load->view('he/searched_gym',$data);
这是模型的样子:
public function getGymByName($query_string)
$query_string=mysql_real_escape_string($query_string);
$query=$this->db->query("select * from gym_members_table where member_title like '%$query_string%'");
return $query->result_array();
</code>
这是 index.php 搜索表单:
函数 settextbox(rval) $('.autosuggest').hide(); $('#gym').val(rval); $('#gym_search2').val(rval); searchGymByName(rval); $(文档).ready(函数() $('.autosuggest').hide(); $('#gym').keyup(function(e) var code = (e.keyCode || e.which); // 如果是方向键,什么也不做 如果(代码 == 37 || 代码 == 38 || 代码 == 39 || 代码 == 40 || 代码==13) 返回; var search_term = $(this).val(); var getdata = 'search_term': search_term; 如果(搜索术语!='') $.ajax( url: "", 数据:获取数据, 类型:'POST', 成功:函数(数据) $('.autosuggest').show(); $('.autosuggest').html(数据); ); 别的 $('.autosuggest').hide(); ); ); $('.autosuggest').hide(); 函数 searchGymByName(rval) $('.autosuggest').hide(); 变体健身房名称=rval; $.ajax( url:"hebrew/searchGym", 类型:“发布”, 数据:健身房名称:健身房名称, 成功:功能(资源) $('html, body').animate( scrollTop: 0 , 0); $("#ajax-map").hide(); $("#city").val(''); $("#city1").val(''); $("#ajax-page-hide").show(); $("#ajax-page-hide").html(res); );
谢谢!!
【问题讨论】:
$('#gym').keyup(function(e) 是导致它自动加载的功能。当有人按下搜索按钮时使用此功能 谢谢,每当我设法禁用它时.. 按下按钮时如何调用此功能?这是我的按钮代码: 删除 $('#gym').keyup(function(e) 并在其位置添加 $('[name="searchgymbutton"]').click(function(e) 【参考方案1】:您可以像这样取消这些字段上的回车键:
$('.gym_search').keypress(function(e)
if ( e.which == 13 ) return false;
//or...
if ( e.which == 13 ) e.preventDefault();
);
【讨论】:
您好,我试过了(查看新代码),但没有取消它。有什么想法吗? $(document).ready(function() $('.autosuggest').hide(); $('#gym').keyup(function(e) var code = (e.keyCode || e.which); //取消输入 $('.gym_search').keypress(function(e) if ( e.which == 13 ) return false;
在你的 $('#gym').keyup(function(e)
中添加代码 == 13【参考方案2】:
从搜索输入字段中删除 id 属性,并将 id="gym" 放在搜索按钮上。然后在 $('#gym').click(function(e) [注意:'click' 而不是 'keyup'] 中,将 search_term 改为
var search_term = $("gym_search").val();
【讨论】:
【参考方案3】:从文本框中删除 onkeypress 事件。在 java 脚本函数中添加用于搜索的 ajax 调用,并在按钮单击事件上调用该函数
【讨论】:
以上是关于如何为在输入时执行搜索的现有代码创建搜索按钮? php/javascript/mysql的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin Forms:如何为网格内单击的按钮添加背景颜色(单词搜索游戏)