Я могу использовать некоторые советы по функции ajaxlivesearch.com в jquery

У меня есть панель поиска, включенная в функциональность livesearch.com от ajaxlivesearch.com

Проблема в том, что когда я нажимаю на результат, ничего не происходит. Я хочу отправить запрос и показать страницу результатов, когда нажимаю на результат. Прежде, чем я включил функцию ajaxlivesearch, я просто набрал ключевое слово и нажал enter, а затем появилась моя страница результатов, это происходит с запросом. Но после того, как я включил функцию ajaxlivesearch, нажатие клавиши Enter больше не было возможностью, ничего не происходит.

Я думаю, что проблема в этих строках 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
}
});

Я надеюсь, что кто-то может помочь мне

Ура!

1

Решение

Прежде чем что-то делать, перейдите в файл 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>';

И добавьте действие в эту форму, так как это то, что активируется, когда вы нажимаете ввод в строке поиска. Так сделайте это так:

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'";

Мне потребовалось некоторое время, чтобы понять это. Но если вы все еще ищете ответ, это сработало для меня. Дайте мне знать, как все прошло!

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]