Bonjour,

Je suis a la recherche d'aide pour une API Ajax/PHP CURL pour l'un de mes projets.

en voici l'idée ;

Moi et les fondateur de mon équipe nous avons des serveurs de jeux et j'aimerais pouvoir via un panneau d'administration avoir tous les infos des serveurs ( ce qui est deja le cas) mais se que j'aimerais ses que tous les 10 a 20 seconde mon api se refresh seul sans avoir a rafraichir la page entiere.

présentement se qui est en fonction ses :
Stats CPU
Stats HDD
Stats Memoire
Stats online/offline
nombre de joueur connecté
Informations complete du serveur de jeux

Mon but est de pouvoir rafraichir une div ou la fonction CURL de php pour que les information CPU HDD et Memoire ainsi que la liste des joueurs sans que nous avons besoins de rafraichir la page entiere se qui est pour vous dire tres detestable.

Quelle serais le mieux a faire pour que mon petit probleme soit régler ?

Faire un script Ajax.js et que sur la div en question je lui indique l'url du script PHP via un data-?? de jquery et lancer la focntion Ajax tous les 10 secondes?

Nous avons un serveur WEb dedier au panneaux administration ainsi que pour notre siteweb de notre Commu.
Tous les fichier api.php son situer sue chaque serveur que nous ajountons et j'appelle avec CURL ce dedi fichier pour récuperer les informations que je desir.

Merci a vous :)

14 réponses


Mcote93
Auteur
Réponse acceptée

J'ai enfin trouver commen faire Merci de ton aide je post le code pour ceux qui aimerais faire la meme choses que moi :)

function cpu(){
 $.ajax({
        type : 'GET', // envoi des données en GET ou POST
        data : 'text',
        dataType : 'JSON',
        url : $('#cpu').data('url') , // url du fichier de traitement
        success : function(data){ 
        $('#cpu').html('<p>'+data['cpu']['percent']+'</p>');
            console.log(data);
        },
        error : function(){
        $('#cpu').html('<p>Erreur chargement CPU</p>');
        console.log('Error CPU');
    }
});
}setInterval(cpu, 2000);
Carouge10
Réponse acceptée

Avec plaisir, plus qu'à mettre le sujet en résolu

Mcote93
Auteur

Je crois avoir trouver se qui serais bien pour se que je veux faire !

<div id="cpu" onload="mw.cpu" data-url="play.monjeux.mondomaine.com/api.php"><!-- ICI ma progress-bar du CPU --></div>
<script type="text/javascript">
function mw.cpu() {
    $.ajax({ url : $('#cpu').data('url') , // url du fichier api
    success : function(data){ 
            $('#cpu').html(data['cpu_percent']);  
     }error : function(){
            console.log('Error CPU');
     } }); 
} setInterval(mw.cpu, 10000);
</script>

En gros se que j'ai fait ci-dessu je crois que sa pourrais etre la meilleur facon de faire.

Je vais simplement devoir me créer un fichier mw.ajax.js et inclure ce dedi fichier sur ma vue de ma page show/id_server

Je teste ceci et je revien vers vous apres pour vous dire mon résultat!

Merci encore a vous :)

Mcote93
Auteur

Bonjour apres avoir fait plusieur teste j'e n'arrive toujours pas a faire ce que je voulais au départ .. dison que moi et javascript et ses dériver nous avons qu'elle que petit probleme de compréhantion xD Pourriez vous eclairer mon chemin vers mon idée svp ?

si une personne charitable serais ou se situ mon erreur pouvoir me la dire :)

Merci

Bonsoir,
Vous bloquez sur qu'elle point ?
Vous recevez les données après la requête ajax ?

Mcote93
Auteur

Le script ci dessu est une idee que jai eu et j'ai tester mais sa ne fonctionne pas je recois pas de resultat venant de ma requete ajax

Je ne suis pas un spécialiste en js.

 $.ajax({
                  type : 'GET', // envoi des données en GET ou POST
                  url : $('#cpu').data('url') , // url du fichier de traitement
                  success : function(data){ 
                          $('#cpu').html(data['cpu_percent']);
                  },
                  error : function(){
                        console.log('Error CPU');
                 }
                });

Voila ce que j'aurais fais car il manquais une , avant error
A tester

Mcote93
Auteur

Haaa Cool Merci Je crois que sa vas fonctionner !

il faut que j'ajoute un header sur mon script php de mon api sinon Ajax me retourne maintenant un errur enfin :D merci xD

Mcote93
Auteur

Mon script ajax fonctionne maintenant mais il me donne une variable undefine en retour mais si je lance mon URL de mon api jai bien la valeur cpu_percent qui est retourner de mon API .. un Json_decode serait-il obligtoire en ajax ?

vous avez en exemple du fichier api.php ?

Mcote93
Auteur

Ouaiis mais il est beaucoup trop gros pour le copier ici par contre voici le bout de code qui retourne mes data ;

$datas = [
    'proco' => ApiController::cpu(),
    'memory' => ApiController::memory(),
    'load' => ApiController::loadaverage(),
    'uptime' => ApiController::uptime(),
    'server' => ApiController::ping('ADDR-IP','PORT-GAME'),
    'hdd' => ApiController::disk()[0],
];
echo json_encode($datas);

jai regarder pour un parsJson en ajax il me retourne un erreur => Uncaught SyntaxError: Unexpected token o

Si vous faites juste un echo de datas.
Puis dans la requête ajax :

console.debug(data);
$('#cpu').html(data['cpu_percent']);

Qu'est ce qui est afficher dans la console ?

Mcote93
Auteur

si je fait que echo $datas sa me retourne aucune information alors jai laisser mon json_encode je vais faire des recherche pour faire un json_decode en jQuery ses ma seul options qui me reste

voila le json decode en js:

var datas = JSON.parse(data);