gpt4 book ai didi

php - 我可以在 jquery 中对 ajaxlivesearch.com 函数使用一些建议

转载 作者:行者123 更新时间:2023-11-30 22:22:03 24 4
gpt4 key购买 nike

我在 ajaxlivesearch.com 的 livesearch.com 功能中包含一个搜索栏

问题是当我点击结果时没有任何反应。我想在单击结果时发送查询并显示结果页面。在我包含 ajaxlivesearch 功能之前,我只是输入了一个关键字并按下回车键,然后我的结果页面出现了,这发生在一个查询中。但在我包含 ajaxlivesearch 功能后,按回车键不再是一个选项,没有任何反应。

我认为问题出在这些 jQuery 行中;

jQuery(".mySearch").ajaxlivesearch({
loaded_at: <?php echo $time; ?>,
token: <?php echo "'" . $token . "'"; ?>,
maxInput: <?php echo $maxInputLength; ?>,
onResultClick: function(e, data) {
// get the index 1 (second column) value
var selectedOne = jQuery(data.selected).find('td').eq('1').text();

// set the input value
jQuery('.mySearch').val(selectedOne);

// hide the result
jQuery(".mySearch").trigger('ajaxlivesearch:hide_result');
},
onResultEnter: function(e, data) {
// do whatever you want
// jQuery(".mySearch").trigger('ajaxlivesearch:search', {query: 'test'});
},
onAjaxComplete: function(e, data) {
// do whatever you want
}
});

希望有人能帮帮我

干杯!

最佳答案

在你做任何事情之前,转到 ajaxlivesearch.js 文件,找到这行代码 ->

// disable the form submit on pressing enter
form.submit(function () {
return false;
});

基本上,当您按下 Enter 键时,它会禁用任何形式发生的事情,这与您尝试做的事情正好相反。所以很明显你需要改变它,例如。

$("#search_ls_query").submit(function(){
return true;
});

现在,(这不是一个完全重要的添加,但尽管如此,请在您添加到索引页面的“onResultEnter”区域中提交表单。例如。

jQuery(document).ready(function(){
jQuery(".mySearch").ajaxlivesearch({
loaded_at: <?php echo $time; ?>,
token: <?php echo "'" . $token . "'"; ?>,
maxInput: <?php echo $maxInputLength; ?>,
onResultClick: function(e, data) {
// get the index 0 (1st column) value
var selectedOne = jQuery(data.selected).find('td').eq('0').text();

// set the input value
jQuery('.mySearch').val(selectedOne);

// hide the result
jQuery(".mySearch").trigger('ajaxlivesearch:hide_result');
},

onResultEnter: function(e, data) {
$("#search_ls_query").submit();

},
/* #search_ls_query is the id of the default form that is submitted when you press enter (Find in ajaxlivesearch.js)*/

onAjaxComplete: function(e, data) {
}
});

})

现在转到 ajaxlivesearch.js 文件并找到它:

var wrapper = '<div class="' + ls.container_class + '">' +
'<form accept-charset="UTF-8" class="' + ls.form_class + '" id="' + ls.form_class + '_' + elem_id + '" name="ls_form">' +
'</form>' +
'</div>';

并向此表单添加一个操作,因为这是当您在搜索栏中按 Enter 键时激活的操作。所以让它成为:

var wrapper = '<div class="' + ls.container_class + '">' +
'<form accept-charset="UTF-8" action="search.php" class="' + ls.form_class + '" id="' + ls.form_class + '_' + elem_id + '" name="ls_form">' +
'</form>' +
'</div>';

这样它实际上就有了一个发送值的目的地。所以发送的值的名称是“ls_query”,所以无论您在栏中键入什么,现在都将插入到“ls_query”的值中。因此,一旦您按下回车键并到达新页面,您就可以使用此变量来过滤您的搜索选项或任何您需要的内容。例如,在您的搜索页面上,您可以这样写:

$ls_query = secure($_GET['ls_query'],$mysqli);      

$sql = "SELECT *
FROM users
WHERE username ='$ls_query'";

这也花了我一段时间才弄明白。但是,如果您仍在寻找答案,那么这对我有用。让我知道进展如何!

关于php - 我可以在 jquery 中对 ajaxlivesearch.com 函数使用一些建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36408747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com