Bonjours à tous.

C'est une chose qui me tiens à cœur car cela me permettra d'avance sur un autre sujet au passage.

voilà commençons

je suis en train de faire un site avec l'un des dernier bootstrap 3.0.2

je souhaiterai afficher des alertes, pour ça il y a cette ligne qui me convient très bien

<div class="alert alert-success"><button type="button" class="close" data-dismiss="alert">×</button>
alerte, votre base de donnée à subit une modification</div>

je souhaiterai que lorsque je charge ma page il se passe ceci:

1-coonexion à la bd
2-recherche d'une information récente datant de moins d'une minute, recherche via un timestamp stocké dans les lignes de la BD.
3-si info récente afficher la div // si pas d'info récente ne pas afficher la dive
4-attendre 1 minutes
5-reprendre à l'étape 2

et on boucle en permanence de 2 à 5.

1-coonexion à la bd via pdo
loop
    {

        2-recherche d'une information récente datant de moins d'une minute, recherche via un timestamp stocké dans les lignes de la BD.
        if (info récente)
            {<div class="alert alert-success"><button type="button" class="close" data-dismiss="alert">×</button>
alerte, votre base de donnée à subit une modification</div>}
        else{}
        4-attendre 1 minutes
    }

mais voilà je ne sais pas faire un boucle et je ne veux pas recharger toute la page.

J'ai besoin d'une bonne piste ou même si je sais que celà ne se faite pas, un code si possible, même partiel

je sais que cela va chercher en java ou ajax, mais je n'ai ni les connaissances, ni le temps de les aquérirs.

merci d'avance pour votre aide.

Flo

15 réponses


Nairolf
Réponse acceptée

Ba regarde du côté de setInterval, et sinon moi j'aurais dit 'le roi des billes' même si on dit bien 'de toutes les chauve-souries, c'est Batman la meilleure' ce qui ne remet pas en cause la relation qu'il a avec Robin.

En fait tu as juste qu'à faire un script PHP qui se connecte à ta base, et charge la dernière info, et le fait apparaitre. En gros il affiche juste la dernière infos, juste en texte sans html.

Après avec AJAX tu récupères le contenu du script.

Tiens je te passe le code vu que tu t'y connait pas.

var request = $.ajax({
url: "script.php",
type: "GET",
dataType: "html"
});
request.done(function(msg) {
$("#ta-div").html( msg );
});

Voilà tu as tes pistes.

flo3376
Auteur

je m'empresse de tester ça et de le comprendre je te tiens au courant.
merci Nairwolf

flo3376
Auteur

bon la reine des billes, c'est à dire moi, n'est pas foutu de faire fonctionner ce si ridicule bout de code.

Je n'ai pas de messages d'erreur, script.php fonctionne normalement alors 2cas possibles, mon script php et faux, ce qui est fort possible, ou j'ai loupé quelque chose ce qui est certain.

Voici les codes, et l'adresse

index.php

<?php
if(!defined('PROTECTIONINCLUDE')){die('Accès Interdit');}
/////protection et insertion des base de donnée/////
define('PROTECTIONINCLUDE', TRUE);
include './config/bdall.php';

//////////////////////////////////////////////////
$mp =$user->data'user_unread_privmsg'];
$pilote = $user->data'username'];
$lastc= $user->data'user_lastvisit'];
if ($mp!=0){$message=1;} else {$message=0;}
$avatar=$user->data'user_avatar'];
$base_avatar="http://grafikart2.fsfrancesimulateur2.fr/forum/download/file.php?avatar";
$img_avatar=$base_avatar.'='.$avatar;

?>
<!DOCTYPE html>
<html>
   <head>
      <title>FFS2 V4/membre</title>
      <meta http-equiv="Content-type" content="text/html; charset=utf-8">
      <meta name="viewport" content="initial-scale=1.0, user-scalable=no">

    <style type="text/css">
      html, body, #map-canvas {margin: 0; padding: 0 ;height: 500px;}
      </style>
    <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>

      <!-- JQuery -->
      <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>  
      <!-- Latest Bootstrap compiled and minified CSS -->
      <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0-rc1/css/bootstrap.min.css">

      <!-- Latest Bootstrap compiled and minified JavaScript -->
      <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.0-rc1/js/bootstrap.min.js"></script>

   </head>
<body>
<?php include './include/membre/tache/scan.php' ?>
<div class="container">
<?php include './include/membre/parts/alarme.php' ?><br>
<SCRIPT language="Javascript">
var request = $.ajax({
url: "script.php",
type: "GET",
dataType: "html"
});
request.done(function(msg) {
$("#alert alert-success").html( msg );
});
</script>

    <div class="row">
        <div class="col-lg-3"><img src="<?php echo $img_avatar;?>" width="200px"></div>
        <div class="col-lg-6"><?php include './include/membre/parts/bcentral.php' ?></div>
        <div class="col-lg-3"><?php include './include/membre/parts/resforum.php';?></div>
    </div>
<br><br>
    <div class="row">
         <div class="col-lg-3">

            <br>
            <ul class="nav nav-pills nav-stacked ">
                <li><a href="index.php?page=home">Home</a></li>
                <li><a href="index.php?page=session">Session</a></li>

                <li class="dropdown">
                    <a class="dropdown-toggle" data-toggle="dropdown" >Forum <span class="caret"></span></a>
                        <ul class="dropdown-menu">
                            <li ><a href="./forum/portal.php" target="_blank" >Forum avec portail</a></li>
                            <li ><a href="./forum/index.php" target="_blank">Forum light</a></li>
                            <li class="divider"></li>
                            <li ><a href="./forum/search.php?search_id=unreadposts" target="_blank">Nouveaux messages <span class="badge"><?php echo $nb_post;?></span></a></li>
                            <li ><a href="./forum/ucp.php?i=pm&folder=inbox" target="_blank">Messages privés <span class="badge"><?php echo $mp;?></span></a></li>
                            <li class="divider"></li>
                            <li ><a href="./forum/ucp.php" target="_blank">Panneau utilisateur </a></li>
                            <li class="divider"></li>
                            <li ><a href="./forum/viewonline.php" target="_blank">Qui est en ligne </a></li>
                        </ul>
                </li>

                <li class="dropdown">

                    <a class="dropdown-toggle" data-toggle="dropdown" >Informations de vol <span class="caret"></span></a>

                            <ul class="dropdown-menu">

                                        <li><a href="http://skyvector.com/airports" target="_blank">Informations et procédures aéroport</a></li>
                                        <li><a href="http://fr.flightaware.com/resources/" target="_blank">Informations météo aéroport</a></li>
                                        <li><a href="index.php?page=test" >tes</a></li>

                            </ul>

                </li>
                <li class="dropdown">

                    <a class="dropdown-toggle" data-toggle="dropdown" >Enregistreur civil <span class="caret"></span></a>

                            <ul class="dropdown-menu">
                                <?php 
                                if ($idtc!=0)
                                    {
                                        ?>
                                        <li><a href="./trackeurcil/index.php/acars" target="_blank">Live map</a></li>
                                        <li class="divider"></li>
                                        <li><a href="index.php?page=pilote_cil&pilote=<?php echo $idtc; ?>" >Fiche du pilote</a></li>
                                        <li><a href="./trackeurcil/index.php/profile/editprofile" target="_blank">Panneau utilisateur</a></li>
                                        <li><a href="index.php?page=schedule_perso_cil&pilote=<?php echo $idtc; ?>" >Liste des vols effectués</a></li>
                                        <li class="divider"></li>
                                        <li><a href="index.php?page=pilote_cil_list">Liste des pilotes</a></li>
                                        <li><a href="index.php?page=schedule_list_cil" >Liste des missions proposé</a></li>
                                        <li><a href="index.php?page=aircraft_cil" >Liste des avions disponibles</a></li>
                                        <?php
                                    } 
                                else {
                                        ?>
                                        <li><a href="./trackeurcil/index.php/acars" target="_blank">Live map</a></li>
                                        <li class="divider"></li>
                                        <li class="disabled"><a href="" target="_blank">Fiche du pilote</a></li>
                                        <li class="disabled"><a href="" target="_blank">Panneau utilisateur</a></li>
                                        <li class="disabled"><a href="" target="_blank">Liste des vols effectués</a></li>
                                        <li class="divider"></li>
                                        <li><a href="index.php?page=pilote_cil_list">Liste des pilotes</a></li>
                                        <li><a href="index.php?page=schedule_list_cil" >Liste des missions proposé</a></li>
                                        <li><a href="index.php?page=aircraft_cil" >Liste des avions disponibles</a></li>
                                        <?php
                                    } 
                                ?>

                            </ul>

                </li>
                <li class="dropdown">

                    <a class="dropdown-toggle" data-toggle="dropdown" >Enregistreur militaire <span class="caret"></span></a>

                            <ul class="dropdown-menu">
                                <?php 
                                if ($idtm!=0)
                                    {
                                        ?>
                                        <li><a href="./trackermil/index.php/acars" target="_blank">Live map</a></li>
                                        <li class="divider"></li>
                                        <li><a href="index.php?page=pilote_mil&pilote=<?php echo $idtm; ?>" >Fiche du pilote</a></li>
                                        <li><a href="./trackermil/index.php/profile/editprofile" target="_blank">Panneau utilisateur</a></li>
                                        <li><a href="index.php?page=schedule_perso_mil&pilote=<?php echo $idtm; ?>">Liste des vols effectués</a></li>
                                        <li class="divider"></li>
                                        <li><a href="index.php?page=pilote_mil_list">Liste des pilotes</a></li>
                                        <li><a href="index.php?page=schedule_list_mil" >Liste des missions proposé</a></li>
                                        <li><a href="index.php?page=aircraft_mil">Liste des avions disponibles</a></li>
                                        <?php
                                    } 
                                else {
                                        ?>
                                        <li><a href="./trackermil/index.php/acars" target="_blank">Live map</a></li>
                                        <li class="divider"></li>
                                        <li class="disabled"><a href="" target="_blank">Fiche du pilote</a></li>
                                        <li class="disabled"><a href="" target="_blank">Panneau utilisateur</a></li>
                                        <li class="disabled"><a href="" target="_blank">Liste des vols effectués</a></li>
                                        <li class="divider"></li>
                                        <li><a href="index.php?page=pilote_mil_list">Liste des pilotes</a></li>
                                        <li><a href="index.php?page=schedule_list_mil" >Liste des missions proposé</a></li>
                                        <li><a href="index.php?page=aircraft_mil">Liste des avions disponibles</a></li>
                                        <?php
                                    } 
                                ?>

                            </ul>

                </li>           

            </ul>
        </div>
        <div class="col-lg-9">
            <?php 
            if (isset($_GET"page"])) 
                {
                    if (($_GET"page"])=="home") {include './include/membre/page/home.php';}
                    if (($_GET"page"])=="session") {include './include/membre/page/session.php';}
                    if (($_GET"page"])=="aircraft_mil") {include './include/membre/enregistreur/aircraft_mil.php';}
                    if (($_GET"page"])=="aircraft_cil") {include './include/membre/enregistreur/aircraft_cil.php';}
                    if (($_GET"page"])=="schedule_details_cil") {include './include/membre/enregistreur/schedule_details_cil.php';}
                    if (($_GET"page"])=="schedule_details_mil") {include './include/membre/enregistreur/schedule_details_mil.php';}
                    if (($_GET"page"])=="schedule_perso_cil") {include './include/membre/enregistreur/schedule_perso_cil.php';}
                    if (($_GET"page"])=="schedule_perso_mil") {include './include/membre/enregistreur/schedule_perso_mil.php';}                 
                    if (($_GET"page"])=="schedule_list_mil") {include './include/membre/enregistreur/schedule_list_mil.php';}
                    if (($_GET"page"])=="schedule_list_cil") {include './include/membre/enregistreur/schedule_list_cil.php';}
                    if (($_GET"page"])=="pilote_cil") {include './include/membre/enregistreur/pilote_cil.php';}
                    if (($_GET"page"])=="pilote_mil") {include './include/membre/enregistreur/pilote_mil.php';}
                    if (($_GET"page"])=="pilote_cil_info") {include './include/membre/enregistreur/pilote_cil_info.php';}
                    if (($_GET"page"])=="pilote_mil_info") {include './include/membre/enregistreur/pilote_mil_info.php';}                   
                    if (($_GET"page"])=="pilote_cil_list") {include './include/membre/enregistreur/pilotes_cil_list.php';}
                    if (($_GET"page"])=="pilote_mil_list") {include './include/membre/enregistreur/pilotes_mil_list.php';}
                    if (($_GET"page"])=="view_mil_pirep") {include './include/membre/enregistreur/view_mil_pirep.php';}
                    if (($_GET"page"])=="view_cil_pirep") {include './include/membre/enregistreur/view_cil_pirep.php';}
                    if (($_GET"page"])=="test") {include './test.php';}

                }

            else
                {include './include/membre/page/home.php';}
            ?>

        </div>
        </div>
    </div>
<?php

?>
</body>
</html>

j'ai aussi essayer de le placer dans le header mais il est muet, actuellement il est en ligne 54 à 63

script.php

<?php
try{
                  $DBPDO = new PDO($dbdns1,$dbuser1 , $dbpass1,
                          array( PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
                  $DBPDO-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
                  try{

                        $sql = "SELECT pirepid FROM tracker_cil_pireps ORDER BY pirepid DESC LIMIT 1";
                        $req = $DBPDO ->query($sql);

                    while($pirep=$req->fetch(PDO::FETCH_OBJ)) 
                    {
                        echo $pirep->pirepid;
                    }
                            }

                        catch (PDOException $e) 
                            {
                                echo '<h6>OUPS:</h6>';
                                echo '</br>';
                                echo '<h5>L\'instruction pour la Base de Donnée n\'a pas été comprise correctement</h5>';
                                echo '</br>';
                                echo '</br>';
                                echo '<h5>Module mis en someil</h5>';
                            }
                    }       
                catch (PDOException $e)
                    {
                        echo '<h6>OUPS:</h6>';
                        echo '</br>';
                        echo '<h5>Une base de donnée n\'est pas de bonne humeur pour le moment.</h5>';
                        echo '</br>';
                        echo '<h5>Veuillez réssayer plus tard</h5>';
                        echo '</br>';
                        echo '</br>';
                        echo '<h5>Module mis en someil</h5>';
                    }
?>

Mais franchement pourquoi tout le monde m'appelle Nairwolf Oo

Sinon en allant sur le lien de ton script php, tu as un message?

flo3376
Auteur

alors à cause de supercoptére, airwolf, pour te répondre à ta première question

Pour la seconde j'ai simplifié script.php en me disant que comme d'hab que mes bd se font encore la malle

<?php
$msg="message vide,";
echo ($msg); 
?>

script php ne peut que fonctionner mais toujours rien qui s'affiche

flo3376
Auteur

gros oups, le site à une sécurité forum, je gére ça de suite

identifiant: grafikart
mdp: grafikart123

voilà il est maintenant possible de visualiser le site

Alors soit c'est le lien vers le script qui est faux, donc pour vérifier il suffit juste de faire un include 'script.php' au début.
Soit c'est le fait que tu as pas créer de div avec l'id alert et qui contient une balise alert-success ce qui semble être le cas.

Donc essaye ça:

<script>
    $(function(){
        $.ajax({
            type: "GET",
            url: "/lien/vers/le_script.php"
            }).done(function( msg ) {
                $("#alert").html(msg);
        });
    })
</script>
<div id="alert"></div>
flo3376
Auteur

c'est une div du bootstrap, mais je me demande comme elle est géré pas la jquerry es qu'il n'y a pas conflit.

mais sinon bingo, avec ta div ça fonctionne

Oui je m'en doutais un peu, c'est parce que la div n'étais pas dans la page, donc jQuery ne pouvait pas afficher le message vu qu'il ne savait pas où le mettre.

Si tu es amatrice (puisqu'il semble que tu soit une fille) de Flight Simulator.

flo3376
Auteur

et non je ne suis pas une fille, c'était juste une expression,

bon il ne me reste plus qu'a essayer de trouver le moyen de faire un refresh, c'est parti je me met en mode recherche

flo3376
Auteur

merci pour setinterval, avec du vocabulaire, je peux avancer, je cherche je teset et je te tiens au courant

flo3376
Auteur

et ça donne ça.

<SCRIPT language="Javascript">
function test()
    {var request = $.ajax({
                            url: "./script.php",
                            type: "GET",
                            dataType: "html"
                        });

    request.done(function(msg) {
                                $("#alert").html( msg );
                                });
        }
setInterval(test,5000);
</script>

mais il semblerait que selon les pc ça marche plus ou moins bien

Sans doute le temps de chargement de la page, mais si ça marche c'est bien alors