IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WordPress PHP Discussion :

ajax plugin wordpress


Sujet :

WordPress PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2015
    Messages : 47
    Par défaut ajax plugin wordpress
    Bonjour,

    je voudrais intégrer mon mini annuaire créer auparavant a mon site wordpress ( je voudrais crée un plugin)
    ( cet annuaire utilise une autre base de donnée )
    mais je n'arrive pas a le faire , s'il vous plait aidez moi

    testAjax.php
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    <?php 
    /*
    Plugin Name: annuaire
    Plugin URI: bil
    Description: Un simple annuaire
    Author: bil
    Version: 1.0.0
    */
    ?>
     
    <html>
    	<head>
    		<title>Mon test ajax</title>
    		<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
     
    		<script>
                    
                    var anneeSouhaitee="";
                    var idSouhaitee="";
                    
                    
                    
                    //le document ready est un event de Jquery qui se déclenche lorsque la structure de la page est chargée
                    $( document ).ready(function() {
                            console.log( "ready!!!!!!" );
                            
                            //on masque la div qui affiche le détail de l eleve
                            $("#DetailEleve").hide();
                            //on masque la div qui affiche le formulaire de modification de l eleve
                            $("#ModifEleve").hide();
                            
                            console.log("contenu de la div qui a pour id titre :: "+$("#titre").html());
                            //$("#titre").html("coucou");
                            //$(".texteRouge").css("color","red");
                            //$("div").css("background-color","yellow");
                            $("div").css("margin","2em");
                            
                            //on charge la liste des élèves
                            chargementListeEleves();
                            
                            //on met les actions sur les boutons d'années pour filtrer les eleves par promo
                            ajouteEcouteurBtnsAnnees();
                            
                    });
                    
     
     
                    function poseEcouteurClicEleve(){
                    
                            $(".btVoirEleve").click(function(){
                                    var idEleve=$(this).attr("id");
                                    //alert('clic eleve'+idEleve);
                                    idSouhaitee=idEleve;
                                    var tab=idEleve.split("_");
                                    
                                    
                                    chargementDetailEleve(tab[1],"lecture");
                            });
                            
                            
                            $(".btModifEleve").click(function(){
                                    var idEleve=$(this).attr("id");
                                    //alert('clic eleve'+idEleve);
                                    idSouhaitee=idEleve;
                                    var tab=idEleve.split("_");
                                    
                                    
                                    chargementDetailEleve(tab[1],"modification");
                            });
                    
                    }
                    
                    
                    function ajouteEcouteurBtnsAnnees(){
                            $(".btnFiltrePromo").click(function(){
                            
                                    //alert('clic'+$(this).attr('id'));
                                    anneeSouhaitee=$(this).attr('id');
                                    chargementListeEleves();
                            });
                    }
                    
                    
                    
                    function chargementDetailEleve(id,pAction){
                            jquery.ajax({
                              method: "POST",
                              url: "listingEleve.php",
                              data: { idEleve: id }
                            }).done(function( msg ) {
                                    console.log( "Data loaded retour du serveur: " + msg );
                                    
                                    if(pAction=="lecture"){
                                    afficheDetailEleve(msg);
                                    }else if(pAction=="modification") {
                                    
                                    afficheMasqueModifEleve(msg);
                                    }
                                    
                              });   
                    
                    }
                    
                    //la fonction qui cree l objet ajax pour aller chercher la liste des eleves 
                    function chargementListeEleves(){               
                            $.ajax({
                              method: "POST",
                              url: "listingEleve.php",
                              data: { promo: anneeSouhaitee }//on fait eventuellement passer une promotion
                            })
                              .done(function( msg ) {
                                    console.log( "Data loaded retour du serveur: " + msg );
                                    afficheEleves(msg);
                              });           
                    }
                    
                    
                    
                    
                    function afficheMasqueModifEleve(pJson){
                    $("#DetailEleve").hide();
                    $("#ModifEleve").show();
                    objJson = JSON.parse(pJson);
                    //$("#ModifEleve #idEleve").html(objJson[0]["idEleve"]);
                    $("#ModifEleve #modifNomEleve").val(objJson[0]["nomEleve"]);
                    //$("#ModifEleve #prenomEleve").html(objJson[0]["prenomEleve"]);
                    //$("#ModifEleve #anneePromo").html(objJson[0]["anneePromotionEleve"]);
                    
                    }
                    
                    function afficheDetailEleve(pJson){
                    $("#ModifEleve").hide();
                    $("#DetailEleve").show();
                    objJson = JSON.parse(pJson);
                    $("#DetailEleve #idEleve").html(objJson[0]["idEleve"]);
                    $("#DetailEleve #nomEleve").html(objJson[0]["nomEleve"]);
                    $("#DetailEleve #prenomEleve").html(objJson[0]["prenomEleve"]);
                    $("#DetailEleve #anneePromo").html(objJson[0]["anneePromotionEleve"]);
                    
                    }
                    
                    function afficheEleves(pJson){
                    
                    
                    console.log(typeof(pJson));
                    
                    objJson = JSON.parse(pJson);
                    console.log(typeof(objJson));
                    console.log(objJson.length);
                    var nbEleves=objJson.length;
                    
                    var strDivListeEleves="";
                    for (var indice=0 ; indice< nbEleves ; indice ++){
                            console.log(objJson[indice]["nomEleve"]);
                            
                            strDivListeEleves=strDivListeEleves+'<div id="eleve_'+objJson[indice]["idEleve"]+'" class="eleve" >'+objJson[indice]["nomEleve"]+' <button class="btVoirEleve" id="voir_'+objJson[indice]["idEleve"]+'">voir</button>' +' <button class="btModifEleve" id="modif_'+objJson[indice]["idEleve"]+'">modifier</button>  </div>';
                            
                    }
                    $("#BlocListe").html(strDivListeEleves).promise.done(poseEcouteurClicEleve());
                    
                    }
                    
                    </script>
    	</head>
    	<body>
    		<div id="titre" class="texteRouge">ma liste d'élèves :</div>
    		<div>
    			<button id="2017" class="btnFiltrePromo">2017</button>
    			<button id="2018" class="btnFiltrePromo">2018</button>
    			<button id="" class="btnFiltrePromo">toutes les promos</button>
    		</div>
     
    		<div id="BlocListe" class="texteRouge">coucou ici ma liste de résultat </div>
     
    		<div id="DetailEleve">
    			<div id="idEleve"></div>
    			<div id="nomEleve"></div>
    			<div id="prenomEleve"></div>
    			<div id="anneePromo"></div>
     
    		</div>
    	<div id="ModifEleve">
    	<form>
    	nom : <input type="text" id="modifNomEleve"   ></input>
     
    	prenom : <input type="text" id="modifPrenomEleve"   ></input>
    	annee promo	: <input type="text" id="modifPromoEleve"   ></input>
     
    	</form>
     
    		</div>
    	</body>
    </html>

    listingeleve.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    <?php
    $promotion="";
    $idEleve="";
     
     
     
    if (isset ($_POST['promo'])){
     
    	$promotion=$_POST['promo'];
    }
     
    if (isset ($_POST['idEleve'])){
    	$idEleve=$_POST['idEleve'];
    }
     
    //tout d'abord on va chercher les classes dont nous avons besoin grace à l'instruction require_once
     
     
     
     
    	//on crée une nouvelle connexion avec la base Mysql	
    function seconddb() {
    	global $seconddb;
    	$seconddb = new wpdb('root','root','annuaire_eleves','localhost');
    }
     
     
    if ($promotion!=""){
    //si on a passé la variable promoption au script php via une variable en post	
    $tabField=["anneePromotionEleve"];
    $tabValeurs=[$promotion];
    $tabOperateur=["="];
    $tabBool=[""];
     
    //on utilise un objet Condition qui permet d'ajouter un bout de phrase à la requete au select
    //un bout de code sql qui ressemblera à " where ......
    $conditionPromo=new Condition($tabField,$tabValeurs,$tabOperateur,$tabBool);	
    }
     
    if ($idEleve!=""){	
    //si on a passé la variable promoption au script php via une variable en post		
    $tabField=["idEleve"];
    $tabValeurs=[$idEleve];
    $tabOperateur=["="];
    $tabBool=[""];
     
    //on utilise un objet Condition qui permet d'ajouter un bout de phrase à la requete au select
    //un bout de code sql qui ressemblera à " where ......
    $conditionEleve=new Condition($tabField,$tabValeurs,$tabOperateur,$tabBool);	
     
    }
     
    //on crée un objet liste qui va nous retourner un xml ou un json 
    	//avec tous les enregistrement de la table
    	//les parametres du constructeur sont (lenom de la table, la liaison crée par l'objet connexion, le nom de la base)
    $listeEleves=new Liste("eleve",$maLiaison,$seconddb);
     
     
     
    //on ajoute à notre objet liste la condition	 
    if ($promotion!=""){
    	$listeEleves->condition = $conditionPromo->ecritureSql();
    }
     
    if ($idEleve!=""){
    	$listeEleves->condition = $conditionEleve->ecritureSql();
    }
     
     
     
    //la méthode créationRequète est celle qui permet de créer le code sql
    $listeEleves->creationRequete();
     
    	//afficheRequete est utiliser pour le débbogage
    	//$listeEleves->afficheRequete();
     
    	//la méthode qui envoie la requete à la base et stocke le resultat
    $listeEleves->executeRequete();
    //echo $listeEleves->nombreResultats();
     
     
     
    	//on choisi ensuite le type de sortie (xml ou json ) et on l'affiche
     
     
    $listeEleves->creationJson();
    $listeEleves->afficheJson();
    /*
    $listeEleves->creationXml();
    $listeEleves->afficheXml();
    */
     
    ?>
    function.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
    /**
    ** activation theme
    **/
    add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
    function theme_enqueue_styles() {
     wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
     
    }
     
    function seconddb() {
    	global $seconddb;
    	$seconddb = new wpdb('root','root','annuaire_eleves','localhost');
    }
    add_action('init', 'seconddb');

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 673
    Par défaut
    pour créer une extension WordPress, vous pouvez regarder la documentation là :
    https://developer.wordpress.org/plugins/

    et pour créer des nouveaux types d'objet comme par exemple un type "élève", vous pouvez utiliser des "custom post type" :
    https://developer.wordpress.org/plugins/post-types/

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/09/2011, 12h35
  2. [AJAX] Ajax Php WordPress - Challenge!
    Par bali.cogerino dans le forum AJAX
    Réponses: 0
    Dernier message: 06/07/2011, 18h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo