jQuery / PHP Hide Div, обновить информацию из MySQL, показать Div новая информация - PullRequest
1 голос
/ 07 марта 2011

JQuery:

$(document).ready(function(){

    $(".reload").click(function() {
        $("div#update").fadeOut("fast")
        .load("home.php div#update").fadeIn("fast")
    });
});

PHP:

function statusUpdate() {

    $service_query = mysql_query("SELECT * FROM service ORDER BY status");
    $service_num = mysql_num_rows($service_query);

    for ($x=1;$x<=$service_num;$x++) {
    $service_row = mysql_fetch_row($service_query);

    $second_query = mysql_query("SELECT * FROM service WHERE sid='$service_row[0]'");
    $row = mysql_fetch_row($second_query);

    $socket = @fsockopen($row[3], $row[4], $errnum, $errstr, 0.01); 
    if ($errnum >= 1) { $status = 'offline'; } else { $status = 'online'; }

    mysql_query("UPDATE service SET status='$status' WHERE sid='$row[0]'")
    or die(mysql_error());

    ?>

    <ul><li style="min-width:190px;"><?php echo $row[1]; ?></li>
    <li style="min-width: 190px;" title="DNS: <?php echo $row[2]; ?>">
    <?php echo $row[3] . ':' . $row[4]; ?></li>
    <li class="<?php echo $status; ?>" style="min-width:80px;"><div id="update">
    <?php echo $status; ?></div></li></ul> 

    <?php

    } 
}

?>

<?php statusUpdate(); ?>

У меня есть кнопка, которую я нажимаю (обновить) и которая затем обновляет идентификатор #update, чтобы, надеюсь, постепенно исчезать из всех результатов, а затем исчезать в новых результатах ... возвращает их, это просто div на div и div и выглядит действительно грязно - не делает то, что должен был сделать (пришлось бы загрузить картинку, чтобы дать дополнительную информацию).

Короче говоря, я хочу, чтобы, когда вы нажали обновление, все они исчезали, а затем исчезали с обновленными значениями из php ... Я сделал php / mysql в функции, чтобы потом мог это когда я нажимаю кнопку обновления, думая, что это сработает, но я не знаю, как это сделать ...

Заранее спасибо,

Phillip.

Ответы [ 4 ]

1 голос
/ 07 марта 2011
.load("home.php div#update").fadeIn("fast")

Это неправильно.Вам нужно использовать

$('div#update').load('home.php', function(data) {
  $('div#update').html(data).fadeIn("fast");
});

. Убедитесь, что ваш PHP-файл работает правильно, вызвав его напрямую и подтвердив, что он возвращает результаты правильно.

Ссылка: http://api.jquery.com/load

1 голос
/ 07 марта 2011

Javascript

 $(document).ready(function(){

        $(".reload").click(function() {
            $("div#update").fadeOut("fast");
            $.ajax({
                 url:'home.php',
                 data:{type:'getStatus'},
                 type;'post', 
                 success:function(data){
                    $('div#update').html(data).fadeIn('fast');
                 }
            });       
        });
    });

php формат страницы

<?php
$type= $_POST['type'];
if($type=="getStatus")
{
    //get statuses from data base and return only formatted statuses in html
}
else
{
   //your page codes here
   //like tags <html>,<body> etc, all regular tags
   //<script> tags etc
}
?>
0 голосов
/ 09 марта 2012

Просто для справки, будет лучше добавить дополнительную страницу в тот же каталог (например, phpcode.php), а затем поместить туда свой php-код!тогда попробуйте это:

var $data = $('div#update');
$data.fadeOut('slow', function() { 
    $data.load('phpcode.php div#update', function() { 
        $data.fadeIn('slow'); 
    }); 
});
0 голосов
/ 07 марта 2011

Попробуйте это

var $data = $('div#update');
$data.fadeOut('slow', function() { 
    $data.load('home.php div#update', function() { 
        $data.fadeIn('slow'); 
    }); 
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...