PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1151 Javascript » Ajax !!!!!!!!!!! » 17-04-2010 10:35:00

Pierrot
Réponses : 32

Saluton !!! big_smile
J'ai pris quelques jours de vacances et ayant abandonné le développement depuis 5 ans, j'ai voulu revenir a mes premiers amours big_smile.
Entendant parler partout d'AJAX et ne connaissant pas du tout cette technologie, j'ai voulu voir de que çà donne.
j'ai donc été pêcher quelques librairies sur internet, et j'ai mis tout cela à ma sauce wink
Il y a une librairie ajax, une librairie fenetre et une librairie grid.
Le librairie grid est 100% de moi big_smile:D
J'ai modifié les 2 autres pour qu'elles fonctionnent sous IE8, FireFox, Crome et quelles s'accordent dans l'ensemble.
Donc voici avec quelques ligne de code ce que l'on peu faire :

Le code javascript :

<script type="text/javascript">
  var nbdiv=0;
  var page=new Array();
  var tabtab= "";
  var nbwin=0
 
  function Appel_Ajax(xpage) {
      var param="page="+xpage;
      new Ajax_request('listindividu.php',{method:'post',params:param,onSuccess:succAjax,onError:ErrorAjax,async:false});
  }
 
  function  ErrorAjax(xhr) {
    alert('error : status =' +xhr.status);
  }
     
  function succAjax(xhr) {
    tabtab=xhr.responseText
  }
 
  function Eventbf(mydiv){ // appelée lors du click sur le bouton "[<<]" first
    page[mydiv]=1;
    Appel_Ajax(page[mydiv]);
    RefreshGrid(mydiv,tabtab);
  }
 
  function Eventbp(mydiv){ // prev
    page[mydiv]--;
    Appel_Ajax(page[mydiv]);
    RefreshGrid(mydiv,tabtab);
  }
 
  function Eventbn(mydiv){ // next
    page[mydiv]++;
    Appel_Ajax(page[mydiv]);
    RefreshGrid(mydiv,tabtab);
  }
 
  function Eventbl(mydiv){ // last
    page[mydiv]=-1;
    Appel_Ajax(page[mydiv]);
    RefreshGrid(mydiv,tabtab);
  }
   
  function ReturnTGrid(dparent){ // objet grid
    var xdiv= 'mygrid' + ++nbdiv;
    page[xdiv]=1;
    Appel_Ajax(page[xdiv]);
    var typegrid= { idgrid : xdiv , 'divparent' : dparent ,
              tabldata : tabtab,
              url : 'listindividu.php',
              eventbf : function(){Eventbf(xdiv)},
              eventbp : function(){Eventbp(xdiv)},
              eventbn : function(){Eventbn(xdiv)},
              eventbl : function(){Eventbl(xdiv)},
              typeobj : "['label','label','label','label','label']",
              gwith : 500
            };
    return typegrid;
  }
 
  function CreateNewWin(){
    var windiv = "windiv" + ++nbwin;
    new popUp(50 , 100 , 510 , 310 , windiv , "" , "white" , "black" , "10pt sans-serif" , "Fenetre test" , "#0F72BB" , "white" , "lightgrey", "#6DBAF3" , "black" , true , true , true , true , false , false , 'min.gif' , 'max.gif' , 'close.gif' , 'resize.gif');
    var xx=ReturnTGrid(windiv+'_c');
    CreateNewGrid(xx);
  }
</script>

Le code php :

<?php
        // chez free, y pas json_encode :D:D

  if ( !function_exists('json_decode') ){
    require_once ('JSON.php');
    function json_decode($content, $assoc=false){
      if ( $assoc ){
        $json = new Services_JSON(SERVICES_JSON_LOOSE_TYPE);
      } else {
        $json = new Services_JSON;
      }
      return $json->decode($content);
    }
  }
 
  if ( !function_exists('json_encode') ){
    require_once (dirname(__FILE__).'/JSON.php');
    function json_encode($content){
      $json = new Services_JSON;
      return $json->encode($content);
    }
  }
 
  include("connect.php");
  header("Content-Type: text/plain; charset=utf-8");
  $buffer="";
  $parpage=10;
  $page=$_POST['page'];
  $sql="SELECT COUNT(*) FROM individu";
  $countenreg=current(mysql_fetch_array(mysql_query($sql)));
  $countpages=ceil($countenreg/$parpage);
  if($page==-1){$page=$countpages;};
  if($page > $countpages){$page=1;};
  $debut=($page*$parpage)-$parpage;
  $sql="SELECT id,nom,prenom,type,matricule FROM individu ORDER BY nom,prenom LIMIT $debut,$parpage";
  $res=mysql_query($sql);
  $buffer="[[\"ID\",\"Nom\",\"Prenom\",\"Type\",\"Matricule\"],";
  $bcl=0;
  while($row=mysql_fetch_row($res)){
    $buffer .= json_encode($row);
    $buffer .= (++$bcl < $parpage) ? "," : "";
  }
  $buffer .= "]";
  echo $buffer;
 
?>

Et le resultat :

http://safbiturbo.free.fr/grid/test3.html

pour info, la table comporte 1285 enregistrements. wink


Si ca interresse quelquessssssss personnes, je pourrais approfondir un peu la question et sortir un produit fini et de plus faire une documentation wink
Faite le moi savoir sur ce topic.

a++

#1152 Re : MySQL, PostgreSQL, etc... » [Sujet Clos] [MySQL] Pointage !!! » 26-06-2014 13:13:26

>>Les pointages n'étant pas typés, arrivée ou départ, doit-on accoupler les pointages 2 à 2 et considérer que le dernier est à accoupler avec NOW () ?

le premier pointage est une arrivée et le dernier pointage est un départ;)
il doit y avoir un nombre paire de pointage pat jour wink
a++

#1154 Re : MySQL, PostgreSQL, etc... » [Sujet Clos] [MySQL] Pointage !!! » 26-06-2014 13:13:26

faut k'j'vous mâche le boulot en plus  roll

bon, on va dire en MYSql

la table

id
matricule
heure DATETIME ( date heure de pointage)



Comme ça, c'est plus claire ?

a++

#1155 MySQL, PostgreSQL, etc... » [Sujet Clos] [MySQL] Pointage !!! » 26-06-2014 13:13:26

Pierrot
Réponses : 19

Salut a tous big_smile
Je veux être le premier a poster !!!!!
Alors, je m'invente un probleme big_smile
j'ai une table comme suivant :
id int
matricule char(10)
heure datetime
je voudrais connaître le temps de presence par periode et pas individu wink
Bon courage a tous !!!!!!
a++

Pied de page des forums

Propulsé par FluxBB