javascript — AJAX-запрос для заполнения поповера, работающего только один раз в php-файл.

Я сделал простую панель поиска, в которой на каждом .KeyUp () В этом случае асинхронный запрос переходит в php-файл, который затем заполняет данные в загрузочном загрузчике.

Проблема в том, что в всплывающем окне данные заполняются только один раз, т.е. когда я набираю первый символ, после этого одни и те же данные отображаются даже после нескольких .KeyUp () События.

Вот код:

HTML:

<input type="text" data-placement="bottom" id="search" name="search1" class="search-box" placeholder="Search..." title="Results"/>

AJAX:

$("#search").keyup(function(){
console.log('erer');
//var searchString = $("#search").val();
var data = $("#search").val();
console.log(data);
var e=$(this);
//if(searchString) {
$.ajax({
type: "POST",
url: "do_search.php",
data: {search:data},
success: function(data, status, jqXHR){
console.log('html->'+data+'status->'+status+'jqXHR->'+jqXHR);
e.popover({
html: true,
content: data,
}).popover('show');
},
error: function() {
alert('Error occured');
}
});
//}
});``

PHP:

  $word = $_POST['search'];
//echo $word;
//$word=htmlentities($word)
$sql = "SELECT FName FROM user WHERE FName LIKE '%$word%' ";
//echo $sql;
// get results
//$sql = 'SELECT * FROM Profiles';
$end_result = '';
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
#$end_result.='<li>'.$row["FName"].'</li>';
#$_SESSION['fnamer'] = $row['Fname'];
#$end_result.='<li>'.'<a href =view_search.php>'.$row["Fname"].'</a>'.'</li>';
echo '<a href =view_search.php>'.$row["FName"].'</a>';
}
#echo $end_result;
}

Хотя в успех параметр $ .ajax,данные печатаются нормально, то есть меняются по мере ввода разных алфавитов, но содержимое всплывающего окна не меняется.

Пожалуйста, предоставьте некоторые предложения для решения этой проблемы.

1

Решение

Поповер уже показан. Это не правильный способ динамического изменения содержимого поповера.

Ваш код: https://jsfiddle.net/gsffhLbn/

Вместо этого обращайтесь непосредственно к содержимому поповера:

var popover = e.attr('data-content',data);
popover.setContent();

Скрипки: https://jsfiddle.net/gsffhLbn/1/

1

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector