#javascript #php #database #animation
#javascript #php #База данных #Анимация
Вопрос:
У меня есть php-код, который извлекает и отображает записи из базы данных.Мне нужно отображать их, пока они перетасовываются, пока что-то не произойдет / нажатие кнопки и т. Д./
что-то вроде этого- http://jsfiddle.net/ZDsMa/1 /
вот мой код
<?php
$winners = [];
$conn = mysqli_connect("localhost", "admin", "admin", "lottary");
$sql = "SELECT * FROM users ORDER BY RAND() ";
$result = $conn->query($sql);
while ( $row = $result->fetch_assoc()) {
$id = $row['id'];
$firstname = $row['first_name'];
$lastName = $row['last_name'];
$points = $row['point'];
$all =$id.' '.$firstname. ' '.$lastName. ' '.$points;
?>
<input class="form-control" size="40" name="id" type="text" value="<?php echo $all; ?>">
<?php }
$conn->close();
?>
Комментарии:
1. так ли это? пользователь отправляет запрос и, пока ожидается ответ от сервера, запускает какой-то счетчик чисел, как для поддержания интереса пользователя.
2. Если вы ссылаетесь на пример того, что вы хотите сделать, в чем ваш вопрос? Что мешает вам использовать этот пример и создать свое приложение? Вы предприняли какую-то попытку, которая каким-то образом не сработала?
3. Просто заметка в заголовке с давних пор анимированные загрузочные GIF-файлы, одни из тех, которые идут по кругу, были заменены счетчиками, потому что кто знает, сколько времени это может занять, может быть 30, прежде чем мы даже моргнем во второй раз. Рассмотрите возможность изучения пользовательского интерфейса с помощью css и всего, что уничтожается при ответе.
4. Я предполагаю, что вы хотите, чтобы счетчик отражал текущий номер пользователя. Этот запрос должен занять миллионы секунд, а построение HTML-кода — еще пару миллионов секунд. Зачем беспокоиться о счетчике перед пользователем.
5. @murphy_86: тогда «бесконечный цикл», вероятно, не является правильным термином. Вам нужен код JavaScript, который устанавливается на очень маленький интервал (см.
setInterval
), который обновляет пользовательский интерфейс. И вам нужен JavaScript, который реагирует на нажатие кнопки и очищает этот интервал.
Ответ №1:
Вот скрипт jquery, который перетасовывает записи базы данных с помощью кнопки stop / start
<div class="demo">
<div id="roll"></div><input type="hidden" id="mid" value="">
<p><input type="button" class="btn" id="start" value="Start"> <input type="button" class="btn" id="stop" value="Stop"></p>
<div id="result"></div>
</div>
start_btn.click(function(){
$.getJSON('data.php',function(json){
if(json){
//var obj = eval(json);//By eval () function can be converted into JSON string object
var len = json.length;
_gogo = setInterval(function(){
var num = Math.floor(Math.random()*len);
//var id = obj[num]['id'];
var id = json[num].id;
//var v = obj[num]['mobile'];
var v = json[num].mobile;
$("#roll").html(v);
$("#mid").val(id);
},100);
stop_btn.show();
start_btn.hide();
}else{
$("#roll").html('System can not find the data source, first import the data.');
}
});
//_gogo = setInterval(show_number,100);
});});
stop_btn.click(function(){
clearInterval(_gogo);
var mid = $("#mid").val();
$.post("data.php?action=ok",{id:mid},function(msg){
if(msg==1){
var mobile = $("#roll").html();
$("#result").append("<p>" mobile "</p>");
}
stop_btn.hide();
start_btn.show();
});
});
Ответ №2:
Попробуйте этот код: возможно, эта работа просто заменит while на foreach
<?php
$conn = new mysqli("localhost", "admin", "admin", "lottary");
$sql = "SELECT * FROM `users` ORDER BY RAND()";
$result = $conn->query($sql);
$fetch = $result->fetch_array();
foreach($fetch as $row) {
$id = $row['id'];
$firstname = $row['first_name'];
$lastName = $row['last_name'];
$points = $row['point'];
$all = $id.' '.$firstname. ' '.$lastName. ' '.$points;
?>
<input class="form-control" size="40" name="id" type="text" value="<?php echo $all; ?>">
<?php
}
$conn->close();
?>