Я сделал простую панель поиска, в которой на каждом .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,данные печатаются нормально, то есть меняются по мере ввода разных алфавитов, но содержимое всплывающего окна не меняется.
Пожалуйста, предоставьте некоторые предложения для решения этой проблемы.
Поповер уже показан. Это не правильный способ динамического изменения содержимого поповера.
Ваш код: https://jsfiddle.net/gsffhLbn/
Вместо этого обращайтесь непосредственно к содержимому поповера:
var popover = e.attr('data-content',data);
popover.setContent();
Скрипки: https://jsfiddle.net/gsffhLbn/1/
Других решений пока нет …