[WP.org] ajax plugin wordpress

  • Avatar de Inconnu

    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

    textajax.php

    <?php 
    /*
    Plugin Name: annuaire
    Plugin URI: bil
    Description: Un simple annuaire
    Author: bil
    Version: 1.0.0
    */
    ?>
     
    <html>
    	<head>
    		<title>Mon test ajax</title>
    		<a href="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js">https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js</a>
     
    		<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>

    listineleve.php

    <?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

    <?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');
  • Avatar de Inconnu

    Bonjour,
    Pourriez-vous nous donner le nom de votre site ?
    Important :
    Je vous conseille de lire le lien suivant :
    https://fr.forums.wordpress.com/topic/important-ce-forum-est-reserve-aux-sites-heberges-par-wordpresscom/
    Vous comprendrez mieux pourquoi je vous pose la question .
    Merci pour le retour.

  • Avatar de Inconnu

    Bonjour,

    merci pour votre réponse
    je n’avais pas lu cette remarque , merci encore

    ( pour le moment je travaille en local )

    merci

  • Avatar de Inconnu

    Si votre site est en local, il fonctionne sous WordPress, mais n’est pas hébergé par WordPress.com. Veuillez poser votre question sur les forums appropriés à : https://wpfr.net/support/
    Bonne journée!

  • Le sujet ‘[WP.org] ajax plugin wordpress’ est fermé aux nouvelles réponses.